加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL时间存储类型

发布时间:2023-09-04 11:27:03 所属栏目:MySql教程 来源:
导读:首先要玩好处理时间的操作,要先明白此数据类型能够干什么事,有什么用。MySQL中经常用来存储日期的数据类型有三种:Date、Datetime、Timestamp。

1.date
日历日期,例如:‘2022-6-17’.format形式为
首先要玩好处理时间的操作,要先明白此数据类型能够干什么事,有什么用。MySQL中经常用来存储日期的数据类型有三种:Date、Datetime、Timestamp。

1.date
日历日期,例如:‘2022-6-17’.format形式为:%Y-%m-%d。在其他语言中,像Python、JAVA等利用函数输出Date都为yyyy-mm-dd的形式,业务精确到天就用这个格式。

2.datetime
具体时间日期 例如:'2022-6-17 17:00:22' format格式为:%Y-%m-%d %H:%M:%s.当业务需求中需要精确到秒时,可以用这个时间格式。

3.time
具体时间不包括日期,例如:'17:11:00' format格式为:%H:%M:%s。当业务需求中只需要每天的时间,可以用这个时间格式。

4.timestamp
和datetime存储类型一样,也是既存储时间又存储日期。format格式为:%Y-%m-%d %H:%M:%s.

datetime与timestamp的区别

存储方式不同,对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。而对于DATETIME,不做任何改变,基本上是原样输入和输出。

存储的时间范围也不一样timestamp所能存储的时间范围为:’1970-01-01 00:00:01.000000’ 到 ‘2038-01-19 03:14:07.999999’。 datetime所能存储的时间范围为:’1000-01-01 00:00:00.000000’ 到 ‘9999-12-31 23:59:59.999999’。

timestamp有一个机制是自动初始化与更新,意思就是如果插入数据的时候没有对该值进行赋值,则自动写入当前的[时间戳]对应的格式。在更新其他字段的时候该自动会自动更新到当前的时间。

对比总结
timestamp和datetime除了存储范围和存储方式不一样,没有太大区别。如果对于跨时区的业务,TIMESTAMP更为合适
timestamp有自动初始化和更新,当你update某条记录的时候,该列值会自动更新,这是和datatime最大的区别

5.varchar/bigint
有时候存储入库格式不是固定的,可能出现入库时间精确到日或者是小时又可能只有月,这种灵活不固定的时间就只能使用字符串或者是BIGINT这种类型格式来进行。

这种就需要提取出来后期处理,转换为时间格式进行计算或者进行逻辑运算得到自己想要的时间。

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章