将日期值转换为PST以进行比较:Oracle

时间:2011-08-25 05:52:18

标签: sql oracle

我有两个问题:

  1. 我想将数据类型为“Date”的字段与给定日期进行比较。数据库是oracle并且是一个mysql家伙我发现很难提出简单的查询。 field("date_closed")以UTC格式(24-Aug-2011 18:55:11 for example)存储日期,我想将其转换为PST进行比较。 我尝试了这个查询,但它在数据集中显然返回了一些额外的行(显然):

    select * from table1 where trunc(date_closed)=to_date('2011-08-24','yyyy-mm-dd')

    在比较之前如何转换为PST格式?

  2. 在同一查询中,如何将“date_closed”与当前日期进行比较?

2 个答案:

答案 0 :(得分:0)

您需要NEW_TIME功能

日期不包括Oracle中的时区,并且假定它们位于数据库时区(可能是UTC,但可能不是)。您应该查看TIMESTAMP WITH TIMEZONE数据类型。

答案 1 :(得分:0)

另外,请记住,如果您要比较当前日期 - 我假设您要删除时间戳并仅比较当天。

所以,如果new_time(date_closed,'GMT','PST')翻译日期,你的where子句将比较像

这样的东西

trunc(new_Time(date_closed,'GMT','PST'))= trunc(sysdate)

获取PST中当天的date_closed所有记录。