TIMESTAMPADD
在执行结果并不总是准确的查询时遇到一个奇怪的错误。
示例 #1(不正确):
TIMESTAMPADD(SQL_TSI_SECOND, 1214870399, TIMESTAMP('1970-01-01 00:00:00.000Z'))
回报:
2008-07-01 00:59:59.0
它应该是:
2008-06-30 23:59:59.0
示例 #2(正确):
TIMESTAMPADD(SQL_TSI_SECOND, 1167609600, TIMESTAMP('1970-01-01 00:00:00.000Z'))
返回:
2007-01-01 00:00:00.0
这是正确的。
它发生在我大约 10-15% 的查询中(查询我的表时,大量的 unixtime 到时间戳转换)。它总是相同的 1 小时休息。
谢谢
编辑附加信息:
如果我尝试转换,其他示例 unixtimes 显示不正确:
1270508410
应该2010-04-06 00:00:10.0
是2010-04-05 23:00:10.0
1304722810
应该2011-05-07 00:00:10.0
是2011-05-06 23:00:10.0
1340221507
应该2012-06-20 20:45:07.0
是2012-06-20 19:45:07.0
最后一个只是为了表明它不仅与接近午夜时间段的时间戳有关。