2015-11-10 24 views
0

我有一些在UTC格式lastmodified列中的一些數據。下面的示例數據。如何把SQL中的where條件從具有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日期時間以上的所有記錄?

+0

「lastmodified」列的數據類型是TIMESTAMP還是VARCHAR2? –

+0

數據類型爲'TIMESTAMP' – user2325154

+0

您正在比較字符串('to_char(sysdate,...)')到時間戳。不要這樣做。你需要使用'trunc(lastmodified)= trunc(sysdate)' –

回答

1

假設的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') 

祝你好運。

相關問題