带有where子句问题的Oracle时间戳记

时间:2017-08-04 18:30:37

标签: sql oracle timestamp to-timestamp

我有

的以下sql查询
select * from MY_TABLE
 MY_COL >= to_timestamp_tz('08-03-17 07:25:00.0000 EST', 'dd-mm-yy hh24:mi:ss.ff TZR') and 
 MY_COL <= to_timestamp_tz('08-03-17 09:08:00.0000 EST', 'dd-mm-yy hh24:mi:ss.ff TZR')

至少有以下2个条目(如sql developer中所示)。

03-AUG-17 07.25.51.576000000 AM AMERICA/NEW_YORK
03-AUG-17 07.31.33.553000000 AM AMERICA/NEW_YORK

我的查询不返回任何条目。我希望能够获得这两个条目。我有什么明显的遗漏吗?

谢谢

1 个答案:

答案 0 :(得分:5)

请仔细看看

MY_COL >= to_timestamp_tz('08-03-17 07:25:00.0000 EST', 'dd-mm-yy hh24:mi:ss.ff TZR') and 
 MY_COL <= to_timestamp_tz('08-03-17 09:08:00.0000 EST', 'dd-mm-yy hh24:mi:ss.ff TZR')

日期字符串为:'08-03-17 ...,格式字符串为:'dd-mm-yy ....

  • dd-是DAY = 08
  • mm - 是MONTH = 03
  • yy - 是YEAR = 17

请检查the documentation: format models

因此,您的查询正在查找以下日期:

  • 大于08-MARCH-2017 07:25
  • 低于8-MARCH-2017 09:08

查询无法找到这些记录并不令人惊讶:

03-AUG-17 .....
03-AUG-17 .....

因为AUGUST不是MARCH