sql:常用:DateTime,Timestamp,Time和Date有什么区别?

场景:

用Mysql出现时间问题Incorrect datetime value: '' for column 'createtime',查明原因数据库中用的是TIMESTAMP格式,时间为1970-2038年范围之外的日期无法入库。

解决:使用datetime字段类型

总结如下:

使用MySQL作为一个例子(如果没有其他原因,因为它是最流行的),你有DATE,DATETIME,TIME和TIMESTAMP列数据类型; 就像你有CHAR,VARCHAR,FLOAT和INTEGER。

DATE只存储一个日期:年月日

TIME只存储一天的时间:时分秒

DATETIME存储日期+时间,DATETIME被格式化为YYYY-MM-DD HH:MM:SS,有效范围从1000年到9999年(以及其间的所有内容)。精确到时分秒,用于做时间戳。8个字节储存。

TIMESTAMP :从数据库中获取时TIMESTAMP 看起来是相似的,但它实际上只是一个unix时间戳的前沿,其有效范围从1970年到2038年。

这里除了数据库引擎内部的各种内置函数之外,还有存储空间,由于DATETIME每年,每月,每天,每小时,每分钟和每秒都存储一个数字,所以总共消耗了8个字节。TIMESTAMP,自1970-01-01以来的秒数,它使用4个字节。

最后,它归结为你需要你的日期/时间列做什么。

需要在1970年以前或2038年以后存储日期和时间,使用DATETIME,但需要担心数据库的大小。

在这个时间1970-2038范围内?使用TIMESTAMP。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值