【发布时间】:2011-08-10 13:13:18
【问题描述】:
这会返回1(又名TRUE)
SELECT DATE_SUB(NOW(), INTERVAL 24*100 HOUR) = DATE_SUB(NOW(), INTERVAL 100 DAY);
100 天前,一天中的小时没有变化。但由于夏令时(美国),100 个 24 小时前的时间段实际上比按天数计算的时间早一小时。如果上面的语句考虑了夏令时,它将返回0 或FALSE。
有没有一种方法可以说明给定语句或会话的 DST?我不想使用UNIX_TIMESTAMP,因为它会切断 2038 年之后的任何内容。
【问题讨论】:
-
这可能会有所帮助stackoverflow.com/questions/1646171/…(在 mysql 中不太可能有治愈方法)
-
男孩!做I wish I could write a custom data type 正常工作!
-
您必须编写自己的 DATE_SUB 函数,将 DST 考虑在内。顺便说一句,我很想扼杀那些梦想着 DST 噩梦的人。
-
不能等待 64 位 unix 时间戳成为常态。 y293billionK 不会成为问题...