我想獲取從HSQL數據庫和查詢的記錄如下:無法在特定範圍內的日期條件查詢
ao.find(Issueda.class, Query.select().where("user=? AND TO_DATE(START_TIME, 'yyyy/MM/dd')>= TO_DATE(?,'yyyy/MM/dd') AND TO_DATE(END_TIME, 'yyyy/MM/dd') <= TO_DATE(?,'yyyy/MM/dd')",user,parsedDate,parsedDate))
現在,它給了我一個錯誤,「TO_DATE」是無效的關鍵字作爲如下:
at java.lang.Thread.run(Thread.java:662)
Caused by: java.sql.SQLException: Unexpected token: TO_DATE in statement [SELECT * FROM
PUBLIC.AO_0371A8_ISSUE_da WHERE user=? AND TO_DATE(START_TIME, 'yyyy/MM/dd')>= TO_DATE(?,'yyyy/MM/dd') AND TO_DATE(END_TIME, 'yyyy/MM/dd') <= TO_DATE(?,'yyyy/MM/dd')]
如果我刪除「TO_DATE」我就不是從數據中得到正確的結果數據,並返回NULL只即使數據數據庫中存在。 在數據庫日期字段值的格式是「2013-05-15 00:00:00.000000000」
任何一個plz可以共享我任何替代數據庫查詢?
如果start_date和end_date已經是日期格式,則不需要使用to_date。試試這個'ao.find(Issueda.class,Query.select()。where(「user =?AND START_TIME> = TO_DATE(?,'yyyy/MM/dd')AND END_TIME <= TO_DATE(?,'yyyy/MM/dd')「,user,parsedDate,parsedDate))' – D3V 2013-05-06 11:58:31
@SantoshPingale我只是試過了:它給我錯誤 - 在java.lang.Thread.run(Thread.java:662) 由java.sql .SQLException:意外的標記:TO_DATE在語句[SELECT * FROM PUBLIC.AO_0371A8_ISSUE_da WHERE user =? AND START_TIME> = TO_DATE(?,'yyyy/MM/dd')AND END_TIME <= TO_DATE(?,'yyyy/MM/dd')] – dsi 2013-05-06 13:06:55
對於此查詢,您不需要TO_DATE。使用「START_TIME」? AND END_TIME <?'然後創建一個java.sql.Data來設置PreparedStatement變量。 TO_DATE用於轉換字符串格式的日期。 – fredt 2013-05-06 15:20:05