我有MSSQL的程序:錯誤,當我設置參數的PreparedStatement
my_proc
我從Java
String sql = "exec my_proc '2016-01-01','2016-01-20','2016-01-01'";
stmt = connection.prepareStatement(sql);
rs = stmt.executeQuery();
獲取數據,並得到所有數據正常!
,但如果我用
String msisdn, String startDate, String endDate
String sql = "exec my_proc ?,?,?";
stmt = connection.prepareStatement(sql);
stmt.setString(1, msisdn);
stmt.setString(2, startDate);
stmt.setString(3, endDate);
rs = stmt.executeQuery();
我得到錯誤:
com.microsoft.sqlserver.jdbc.SQLServerException: Error converting data type varchar to datetime.
在程序我有變量:
@Startdtin datetime,
@Enddtin datetime,
@msisdnin varchar(18)
我試圖使用
stmt.setTimestamp(2, startDate); //startDate - convert to Timestamp
和
stmt.setDate(2, startDate); //startDate - convert to Date (sql and util)
它沒有幫助。如何正確地傳遞日期到PreparedStatement
?
將數據類型varchar轉換爲datetime時可能出現重複。當我試着stmt.executeQuery()](http://stackoverflow.com/questions/35358772/error-converting-data-type-varchar-to-datetime-when-i-tried-stmt-executequery) – JonK
這是否' startDate'的類型是'String'? – Satya
這個問題更正確。 old deleted – user5620472