美文网首页
Mysql timestamp范围问题

Mysql timestamp范围问题

作者: 酥苏落叶 | 来源:发表于2019-08-09 14:01 被阅读0次

    timestamp 是Mysql中的一个时间戳类型,
    在创建表时,我为这个类型的字段创建默认值为'1970-01-01 00:00:01'发现不能成功创建,并提示Invalid default value for '字段名'。

    上网查资料,大部分资料都表明这个类型的范围在1970-01-01 00:00:01到2038-01-19 03:14:07之间。应该没有问题.

    继续查找,最后发现问题出在时区上,在MySQL文档中支持的时间范围后面都添加了UTC,说明这个时间是和时区相关的,MySQL在存储的时候会将timestamp类型的字段从当前时区转成UTC时区。从当前时区转成UTC时区需要减去8小时,所以最后'1970-01-01 00:00:01'这个时间存储到MySQL不在timestamp类型的范围内了。

    因此我们的最小默认值应该是'1970-01-01 08:00:01'

    日期类型 存储空间 格式 日期范围
    datetime 8bytes YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 - 9999-12-31 23:59:59
    timestamp 4bytes YYYY-MM-DD HH:MM:SS 1970-01-01 00:00:01 - 2037-12-31 23:59:59
    date 3bytes YYYY-MM-DD 1000-01-01 - 9999-12-31

    相关文章

      网友评论

          本文标题:Mysql timestamp范围问题

          本文链接:https://www.haomeiwen.com/subject/gmxhjctx.html