我有一个与model属性对应的timestamp列。
但是,当我尝试在表格中保存1970年之前的时间戳时,会显示0000-00-00 00:00:00
的值。
我没有使用适当的格式吗? date
更合适吗?是否有解决方法,所以我不需要更改我的架构?
答案 0 :(得分:6)
Unix纪元(或Unix时间或POSIX时间或Unix时间戳)是自1970年1月1日(午夜UTC / GMT)以来经过的秒数,不包括闰秒(ISO 8601:1970-01- 01T00:00:00Z)
如果您计划使用该日期之前的时间,我建议您使用日期字段。
答案 1 :(得分:3)
引用MySQL docs:
TIMESTAMP数据类型用于包含日期和时间部分的值。 TIMESTAMP的范围为'1970-01-01 00:00:01'UTC到'2038-01-19 03:14:07'UTC。
答案 2 :(得分:1)
这是一个真正的问题,但有一个很好的解决方法。
我们知道关于时间戳,绝对0是在1970年。那么,为什么我们不改变我们的表示模型并将1970年1月1日视为耶稣出生的那一天,即公元1年1月1日。如果你这样做,那么2000年的数字将由3970(2000 + 1970)代表。您可以存储这样的日期,并在查看或转换时将其转换。