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。

猜你喜欢

转载自blog.csdn.net/weixin_38750084/article/details/84333313