mysql中如何存储日期数据

2022年6月2日11:37:58

一.DateTime类型

1,特点
1)以YYYY-MM-DD HH:MM:SS[.fraction]格式存储日期时间,在mysql5.6前可以只能存储到秒,在5.6后能存储到微秒
2)datetime类型与时区无关,占用8个字节的存储空间
3)时间范围公元1000-01-01 00:00:00到9999-12-31 23:59:59,存储的时间范围非常广

二.timestamp类型

1.特点:

1)存储了由格林尼治时间1970年1月1日到当前时间的秒数,即时间戳, 以YYYY-MM-DD HH:MM:SS.[.fraction]的格式显示,占用4个字节,实际上是以int类型来存储的
2)时间范围1970-01-01到2038-01-19
3)timestamp类型显示依赖于所指定的时区
4)在行的数据修改时可以自动修改timestamp列的值 ,这个功能非常的有用,在本行的任何数据被修改时,都会自动修改这个时间,经常使用这个功能来标识每行最后被修改的时间,需要注意的是,如果一张表中有两个列是timestamp,那默认情况下只有第一列会自动更新,其他列不会

三.演示

1.关于时区的区别

1)首先在一张表中,存储两个列的值,第一列是datetime类型,第二列是timestamp类型,用相同时区存进去
mysql中如何存储日期数据
2)修改当前数据库的时区,再次查询

mysql中如何存储日期数据
3)结论:第一列的时间没有随着时区的变化而变化,第二列就变了,说明datetime与时区无关,timestamp会随着时区的变化而变化

四.date类型

1.特点

1)只能存储日期,不能存储时间
2)占用的字节数比使用字符串(8个字节),datetime(8个字节),int(4个字节) 存储要少,使用date类型只需要3个字节
3)使用date类型还可以利用日期时间函数进行日期之间的计算
4)存储的时间范围:公元1000-01-01到9999-12-31之间的日期

五.time类型

用于存储时间的数据,格式为HH:MM:SS

六.注意事项

1.不要使用字符串类型来存储日期时间的数据

理由:
1)日期时间类型通常比字符串占用的存储空间小
2)日期时间类型在进行查找过滤时可以利用日期来进行对比
3)日期时间类型还有着丰富的处理函数,可以方便的对日期类型进行日期的计算

2.使用int存储日期时间不如使用timestamp类型,使用时更加方便,无需转换

  • 作者:Catalina_yep
  • 原文链接:https://blog.csdn.net/Apple_Andy/article/details/109228495
    更新时间:2022年6月2日11:37:58 ,共 968 字。