大纪元时间显示不同时区的不同日期?

时间:2012-07-23 18:43:49

标签: sql timezone epoch

我有一个纪元时间(秒)。它显示了我JAVA中的不同时间,当我做

new Date(time*1000)

在SQL中,当我做

SELECT cast((DATE '1970-01-01' + time/24/60/60) as timestamp) from dual

问题主要是,我需要在凌晨2点到凌晨4点之间的特定间隔的数据。所以当我将秒值传递给SQL查询时。它把它解释为上午9点到11点之间。我知道这是因为时区差异。

我如何克服这个问题?

2 个答案:

答案 0 :(得分:1)

请尝试使用时间戳:

SELECT cast((TIMESTAMP '1970-01-01 00:00:00.00' + time/24/60/60) as timestamp)
  FROM dual

演示:http://www.sqlfiddle.com/#!4/d41d8/1465

答案 1 :(得分:0)

我处理任何时区相关问题的建议是始终在内部处理UTC时间并将其作为UTC存储在数据存储中。仅将它们转换为本地时间仅显示给用户。