当我运行此:这个时间戳为什么要关闭一个小时?
SELECT TIMESTAMPDIFF(SECOND, FROM_UNIXTIME(0), NOW())
它给了我1433183554
这是2015-06-01 11:32:34
。但SELECT NOW()
是2015-06-01 10:33:17
。
这是怎么一个小时?
N.B. select unix_timestamp()
会生成正确的时间戳。
当我运行此:这个时间戳为什么要关闭一个小时?
SELECT TIMESTAMPDIFF(SECOND, FROM_UNIXTIME(0), NOW())
它给了我1433183554
这是2015-06-01 11:32:34
。但SELECT NOW()
是2015-06-01 10:33:17
。
这是怎么一个小时?
N.B. select unix_timestamp()
会生成正确的时间戳。
每axiac's comment,TIMESTAMPDIFF
忽略时区。您可以通过运行
SELECT TIMESTAMPDIFF(HOUR, '2015-03-08 01:00:00', '2015-03-08 04:00:00');
验证这一点应该给2
(如果您在太平洋时间是这样),因为我们“春天正向”一个小时,而是给3
。
带时间戳的基本经验法则:如果您的结果偏离了整整几个小时的几倍,那么它几乎总是时区错误。 –
但是NOW()会返回正确的时间,而SELECT TIMESTAMPDIFF(HOUR,UTC_TIMESTAMP – mpen
[DST](https://en.wikipedia.org/wiki/Daylight_saving_time)。 – axiac