我目前得到的錯誤時間戳:查詢Oracle數據庫,因爲當你知道毫秒
java.sql.SQLException: ORA-01843: not a valid month
我以爲是我設置的時間戳的方式做...
所以我有這樣的一個查詢:
select * from A_TABLE where A_TIMESTAMP_COL < '1252944840000'
但它不工作...我不想將它轉換爲理想的日期。是否有一些特殊的語法告訴Oracle這是一個時間戳?
我目前得到的錯誤時間戳:查詢Oracle數據庫,因爲當你知道毫秒
java.sql.SQLException: ORA-01843: not a valid month
我以爲是我設置的時間戳的方式做...
所以我有這樣的一個查詢:
select * from A_TABLE where A_TIMESTAMP_COL < '1252944840000'
但它不工作...我不想將它轉換爲理想的日期。是否有一些特殊的語法告訴Oracle這是一個時間戳?
我想你可以投的日期欄爲char和做類似:
select * from A_TABLE where to_char(A_TIMESTAMP_COL) < '1252944840000'
這應該允許您比較字符串,而不是日期。
使用java.sql
便利方法將該毫秒時間轉換爲Date或Timestamp。
可以使用TO_TIMESTAMP()函數將字符串轉換成時間戳值:http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/functions201.htm#sthref2458
您可以使用此查詢:
SELECT * FROM A_TABLE WHERE TIMESTAMP < (SYSDATE - 10/1440)
凡(SYSDATE - 10/1440)
意味着SYSDATE - 10 Minutes
。
另見一些例子here。
這對我來說似乎是一個非常糟糕的主意。我相信甲骨文將不得不在與它比較的每個價值上運行該功能,而是能夠在本地進行比較。我希望看到兩者的表現。 – Gandalf 2009-10-23 22:47:57