【发布时间】:2012-04-21 15:59:03
【问题描述】:
我需要将userCurrentDate 与选项列表进行比较。
选项是数据库中包含时间属性的表(定义:TIMESTAMP(6) WITH TIME ZONE。在oracle中)。每个选项都有他的时区。
userCurrentDate(在java中定义Date)是一个参数,它保存了用户时间和日期的偏移量。用户可以来自世界各地,所以每个用户都在不同的时区。
我需要比较用户当前的 date 和选项 date。 所以我需要在同一时区获取这两个参数。
如何在 SQL 中在同一时区获取这 2 个参数?
我尝试在 GMT 中获取它们,因此我可以将它们获取到相同的基础上,如下所示:
trunc(SYS_EXTRACT_UTC(o.time)) = trunc(sysdate)
但这不是一个好的解决方案。
所以,我需要让他们在同一个时区。我怎样才能在 SQL 命令(或其他解决方案)中得到它?
【问题讨论】:
-
我相信 At TIME ZONE 功能是您想要的,如此处所述stackoverflow.com/questions/9216832/…
-
请注意 Date 对象不处理时区。它仅在格林威治标准时间 70 年 1 月 1 日以来跟踪时间的毫秒数。如果您需要在应用中包含一些基于时间的逻辑,您可能需要使用日历。
-
@Grove,请注意我写了 useCurrentDate 保存用户时间和日期,offset