MySQL数据类型 -- 日期时间型

缺乏、安全感 2022-05-10 00:52 317阅读 0赞

在MySQL关系型数据库中,MySQL支持的数据类型非常丰富。它主要分为3大类,即:数值型,日期时间性,字符型。而实际上这三类数据类型可以进一步的细分扩展,可以根据业务需要选择最适合的一种。本文主要介绍日期时间类型,并演示其用法。

一、日期时间型
MySQL支持的日期时间类型可以进一步细分,即可以分为日期型,时间型,日期时间型,时间戳等。如下图所示:
在这里插入图片描述
二、日期时间型存储需求
在这里插入图片描述

三、日期时间型零值显示
在这里插入图片描述

四、日期时间型演示

  1. mysql> show variables like 'version';
  2. +---------------+------------+
  3. | Variable_name | Value |
  4. +---------------+------------+
  5. | version | 5.7.22-log |
  6. +---------------+------------+
  7. mysql> CREATE TABLE tb_date_time
  8. -> (
  9. -> col1 date,
  10. -> col2 time,
  11. -> col3 datetime,
  12. -> col4 timestamp DEFAULT current_timestamp
  13. -> );
  14. Query OK, 0 rows affected (0.17 sec)
  15. mysql> select 'Leshami' as Author
  16. -> union all
  17. -> select 'http://blog.csdn.net/leshami';
  18. +------------------------------+
  19. | Author |
  20. +------------------------------+
  21. | Leshami |
  22. | http://blog.csdn.net/leshami |
  23. +------------------------------+
  24. mysql> INSERT INTO tb_date_time(col1, col2, col3)
  25. -> VALUES (now(), now(), now());
  26. Query OK, 1 row affected, 1 warning (0.03 sec)
  27. mysql> SELECT * FROM tb_date_time;
  28. +------------+----------+---------------------+---------------------+
  29. | col1 | col2 | col3 | col4 |
  30. +------------+----------+---------------------+---------------------+
  31. | 2018-09-23 | 18:07:13 | 2018-09-23 18:07:13 | 2018-09-23 18:07:13 |
  32. +------------+----------+---------------------+---------------------+
  33. 1 row in set (0.00 sec)
  34. -- 查看系统日期时间
  35. mysql> system date
  36. Sun Sep 23 18:08:18 CST 2018
  37. -- mysql层临时修改一下时区,假定在这里修改为+7时区
  38. mysql> set time_zone='+7:00';
  39. Query OK, 0 rows affected (0.00 sec)
  40. -- 再次查看表,col4列上的时间则提前了一小时
  41. -- 也即是时区会影响时间戳列
  42. mysql> SELECT * FROM tb_date_time;
  43. +------------+----------+---------------------+---------------------+
  44. | col1 | col2 | col3 | col4 |
  45. +------------+----------+---------------------+---------------------+
  46. | 2018-09-23 | 18:07:13 | 2018-09-23 18:07:13 | 2018-09-23 17:07:13 |
  47. +------------+----------+---------------------+---------------------+
  48. 注意对比TIMESTAMPDATETIME
  49. TIMESTAMP需要4个字节,而DATETIME需要5个字节。
  50. TIMESTAMPDATETIME都需要额外的字节来获得小数秒的精度。
  51. TIMESTAMP值的范围为1970-01-01 00:00:01 UTC2038-01-19 03:14:07 UTC
  52. 如果要存储超过2038的时间值,则应使用DATETIME而不是TIMESTAMP
  53. -- 查看当前时间
  54. mysql> SET @dt = NOW();
  55. Query OK, 0 rows affected (0.03 sec)
  56. mysql> SELECT @dt;
  57. +---------------------+
  58. | @dt |
  59. +---------------------+
  60. | 2018-09-23 18:08:28 |
  61. +---------------------+
  62. 1 row in set (0.00 sec)
  63. mysql> SELECT DATE(@dt);
  64. +------------+
  65. | DATE(@dt) |
  66. +------------+
  67. | 2018-09-23 |
  68. +------------+
  69. 1 row in set (0.00 sec)

发表评论

表情:
评论列表 (有 0 条评论,317人围观)

还没有评论,来说两句吧...

相关阅读