mysql数据库操作之日期时间型

[复制链接]
查看1407 | 回复0 | 2020-9-29 11:00 | 显示全部楼层 |阅读模式
数据类型
描述
datetime日期时间,占用8个字节
date日期  占用3个字节
time时间 占用3个字节
year年份,占用1个字节
timestamp时间戳,占用4个字节
1、datetime和date
datetime格式:年-月-日  小时:分钟:秒。支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。
  1. mysql> create table stu14(
  2.     -> t1 datetime,    -- 日期时间
  3.     -> t2 date                                -- 日期
  4.     -> );
  5. Query OK, 0 rows affected (0.05 sec)
  6. -- 插入测试数据
  7. mysql> insert into stu14 values ('2019-01-15 12:12:12','2019-01-15 12:12:12');
  8. Query OK, 1 row affected, 1 warning (0.00 sec)
  9. -- 查询
  10. mysql> select * from stu14;
  11. +---------------------+------------+
  12. | t1                  | t2         |
  13. +---------------------+------------+
  14. | 2019-01-15 12:12:12 | 2019-01-15 |
  15. +---------------------+------------+
  16. 1 row in set (0.00 sec)
复制代码
2、timestamp(时间戳)
datetime类型和timestamp类型表现上是一样的,他们的区别在于:
datetime从1000到9999,而timestamp从1970年~2038年(原因在于timestamp占用4个字节,和整形的范围一样,2038年01月19日11:14:07以后的秒数就超过了4个字节的长度)
  1. mysql> create table stu15(
  2.     -> t1 timestamp
  3.     -> );
  4. Query OK, 0 rows affected (0.06 sec)

  5. mysql> insert into stu15 values ('2038-01-19 11:14:07');
  6. Query OK, 1 row affected (0.00 sec)
复制代码
3、year
只能表示1901~2155之间的年份,因为只占用1个字节,只能表示255个数
  1. mysql> create table stu16(
  2.     -> y1 year
  3.     -> );
  4. Query OK, 0 rows affected (0.08 sec)

  5. mysql> insert into stu16 values (2155);
  6. Query OK, 1 row affected (0.00 sec)
复制代码
4、time
可以表示时间,也可以表示时间间隔。范围是:-838:59:59~838:59:59
  1. mysql> create table stu17(
  2.     -> t1 time
  3.     -> );
  4. Query OK, 0 rows affected (0.02 sec)

  5. mysql> insert into stu17 values ('12:12:12');
  6. Query OK, 1 row affected (0.00 sec)

  7. mysql> insert into stu17 values ('212:12:12');
  8. Query OK, 1 row affected (0.00 sec)

  9. mysql> insert into stu17 values ('-212:12:12');
  10. Query OK, 1 row affected (0.00 sec)

  11. mysql> insert into stu17 values ('839:00:00');   -- 报错
  12. ERROR 1292 (22007): Incorrect time value: '839:00:00' for column 't1' at row 1

  13. -- time支持以天的方式来表示时间间隔
  14. mysql> insert into stu17 values ('10 10:25:25');   -- 10天10小时25分25秒
  15. Query OK, 1 row affected (0.00 sec)

  16. mysql> select * from stu17;
  17. +------------+
  18. | t1         |
  19. +------------+
  20. | 12:12:12   |
  21. | 212:12:12  |
  22. | -212:12:12 |
  23. | 250:25:25  |
  24. +------------+
  25. 4 rows in set (0.00 sec)
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

UID
1
贡献
387
丢币
38902
主题
4607
回帖
116
注册时间
2018-9-25
最后登录
2024-4-26