2017-10-16 109 views
0

我想使用Servlet的,如果我正確地編寫一個查詢,然後STR_TO_DATE工作插入從我的JSP添加日期mysql數據庫的工作,但如果我在存儲過程中使用STR_TO_DATE它給了我「融爲一體。 mysql.jdbc.MysqlDataTruncation:數據截斷:錯誤的日期值:'11 -10-2015'列'DATE'在第1行「。MySql的STR_TO_DATE不是在存儲過程

我的查詢是:

INSERT INTO TABLENAME (DATE) VALUES (STR_TO_DATE('01/01/2010','%d-%m-%Y'));" 

任何想法?

+0

我知道,但我的問題是爲什麼函數STR_TO_DATE在正常查詢中工作,而不是在存儲過程? –

+0

一個問號就足夠了。沒有必要瘋狂??????? – tadman

+0

'SELECT STR_TO_DATE('01/01/2010' , '%D-%間 - %Y');''返回(空)''SELECT STR_TO_DATE('01/01/2010' ,「%d /%米/%Y');''返回內2010-01-01'您STR_TO_DATE格式化是錯誤 –

回答

0

STR_TO_DATE需要字符串格式相匹配:

INSERT INTO TABLENAME (DATE) VALUES (STR_TO_DATE('01/01/2010','%d/%m/%Y')); 

參考docs的全部細節。

+0

感謝您的幫助。 –

+0

如果它解決了您的問題,請不要忘記接受答案;) – wogsland

+1

您的答案導致錯誤地提供有關在插入命令中使用函數的信息。在值參數中使用函數是完美的。看看它在這裏工作:http://sqlfiddle.com/#!9/fd0d19/1 –

2

功能STR_TO_DATE內的第二個參數被使用錯誤的格式。 您需要使用%d/%m/%Y而不是%d-%m-%Y因爲你的日期與/分隔符格式化。

INSERT INTO TABLENAME (DATE) VALUES (STR_TO_DATE('01/01/2010','%d/%m/%Y'));