【问题标题】:Workaround for MySQL limited TIMESTAMP range?MySQL 有限 TIMESTAMP 范围的解决方法?
【发布时间】:2009-06-16 16:45:09
【问题描述】:

有人知道在 MySQL TIMESTAMP 字段中存储 '1970-01-01 00:00:01' UTC 到 '2038-01-09 03:14:07' UTC 范围之外的值的解决方法吗?

【问题讨论】:

    标签: mysql timestamp


    【解决方案1】:

    如果将列更改为使用 DATETIME 类型,则可以存储更广泛的值。

    TIMESTAMP 类型的范围是 '1970-01-01 00:00:01' UTC 到 '2038-01-09 03:14:07' UTC。

    DATETIME 类型的范围是“1000-01-01 00:00:00”到“9999-12-31 23:59:59”。

    【讨论】:

    • 我使用 TIMESTAMP 的原因是它会根据数据库连接的时区设置自动转换日期值。
    • 你的英雄!这在相当长的一段时间里都是一个谜,但对我来说,这就是 1970 年之前人们的出生日期全为零的原因。谢谢。
    【解决方案2】:

    TIMESTAMP 不应用于文字日期/时间值,它用于 SQL Server 同步。

    使用 SMALLDATETIME 或 DATETIME。

    【讨论】:

    • 另外,它会自动将日期转换为为连接设置的时区。将这种转换推送到数据库级别,而不是代码级别,非常有意义,并且可以防止很多潜在的错误。
    猜你喜欢
    • 2012-08-30
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-10
    • 2011-08-11
    • 1970-01-01
    相关资源
    最近更新 更多