如何在sql中设置where条件,以便从日期和时间为UTC格式的列中获取记录



我在其中一列lastmodified中有一些UTC格式的数据。下面的示例数据。

最后修改的列(示例数据):

05-NOV-15 08.44.00.682392000 PM
05-NOV-15 08.43.00.808086000 PM
06-NOV-15 06.15.01.035835000 PM
06-NOV-15 06.14.00.694774000 PM
07-NOV-15 04.26.00.851745000 PM
07-NOV-15 04.26.00.690437000 PM
08-NOV-15 04.25.00.850166000 PM
08-NOV-15 04.25.00.683356000 PM
09-NOV-15 04.24.00.821617000 PM
09-NOV-15 04.24.00.768993000 PM
10-NOV-15 04.23.00.804560000 PM
10-NOV-15 01.20.00.501400000 PM

查询:

select *
  from my_table
 where trunc(lastmodified) = to_char(sysdate, 'dd-mon-yy');

上面的查询有效,但没有提供我想要的内容。如何获取10-NOV-15 01.00.00日期时间以上的所有记录?

假设lastmodified的数据类型是TIMESTAMP,您应该能够执行

SELECT *
  FROM MY_TABLE
  WHERE TRUNC(LASTMODIFIED) = TRUNC(SYSDATE)

或者,如果你真的想获得记录>=10-NOV-15 01.00.00,你可以使用

SELECT *
  FROM MY_TABLE
  WHERE LASTMODIFIED >= TO_DATE('10-NOV-15 01.00.00', 'DD-MON-RR HH24.MI.SS')

祝你好运。