我有我的應用程序下面的代碼我需要一個MySQL日期時間範圍在Java中
String sql = "SELECT colA, colB, colC " +
"FROM " + tblName + " WHERE UserId = " + userId +
" AND InsertTimestamp BETWEEN " + lastDate +
" AND " + DataProcessor.TODAY + " ORDER BY UserId, Occurred";
try{
if(null == conn)
openDatabaseConnection();
PreparedStatement stmt = conn.prepareStatement(sql);
ResultSet rs = stmt.executeQuery(); <------- this is the line which throws the SQL exception
retArray = this.getArrayListFromResultSet(rs);
}catch(SQLException sqle){
JSONObject parms = new JSONObject();
eh.processSQLException(methodName, sqle, sql, parms);
}
所以,當我在調試器中運行我的應用程序,我得到這個異常消息中幫助選擇
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL語法中有錯誤;檢查與您的MySQL服務器版本對應的手冊,以便在第1行'00:00:00.0和2014-08-20 00:00:00.0 ORDER BY UserId'發生時使用正確的語法。
I相當肯定的是,有一個簡單而合理的解決方案,但我一直無法找到它。
我試過尋找解決方案或不同格式的MySQL手冊。
我試着通過SQL中的TIMESTAMP()functino和DATE()函數運行我的時間戳,這兩者都沒有幫助。
我將完整的SQL從Java代碼中提取出來並在MySQL Workbench中運行,沒有任何問題。所以現在我正在尋求專家的幫助。
http://bobby-tables.com/ –
是的,我感覺你。這不是最好的編碼實踐,如果這不是一個私有方法從調用方法中傳遞給特定的,明確定義的parms,那麼你就會死定了。 –