加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_开封站长网 (http://www.0378zz.com/)- 科技、AI行业应用、媒体智能、低代码、办公协同!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

在TIMESTAMP类型的MySQL列中使用零值

发布时间:2021-01-27 20:45:22 所属栏目:MySql教程 来源:网络整理
导读:我对MySQL中的TIMESTAMP类型的文档以及零值是否可以安全使用感到困惑. manual says: The TIMESTAMP data type has a range of 1970-01-01 00:00:01 UTC to 2038-01-19 03:14:07 UTC. 这表示0000-00-00 00:00:00超出范围,因此无效.但是,据我所知,该手册实

我对MySQL中的TIMESTAMP类型的文档以及零值是否可以安全使用感到困惑. manual says:

The TIMESTAMP data type has a range of ‘1970-01-01 00:00:01’ UTC to ‘2038-01-19 03:14:07’ UTC. …

这表示’0000-00-00 00:00:00’超出范围,因此无效.但是,据我所知,该手册实际上并没有这么说.它也没有明确说明“ 0000-00-00 00:00:00”是有效值.

实践表明,“ 0000-00-00 00:00:00”有效,而manual does say则有效:

CREATE TABLE t (ts TIMESTAMP DEFAULT 0);

是有效的MySQL SQL.实际上,它会导致插入默认值’0000-00-00 00:00:00′.

(所有这些都与’1970-01-01 00:00:00’超出范围的奇怪事实相吻合,IIRC在uint32 Unix时间中不是这种情况.也许MySQL使用二进制零作为幻数?)

那么将语义分配给应用程序中的零时间戳是安全的吗?还是这可能会消失的未记录功能?

最佳答案

The date and time types for
representing temporal values are
DATETIME,DATE,TIMESTAMP,TIME,and
YEAR. Each temporal type has a range
of legal values,as well as a “zero”
value that may be used when you
specify an illegal value that MySQL
cannot represent.

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-types.html

(编辑:开发网_开封站长网)

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

    热点阅读