2017-02-12 121 views
0
CREATE TABLE orders(
    order_id INTEGER PRIMARY KEY, 
    customer_id INTEGER, 
    order_date DATE, 
    ship_date DATE 
); 

INSERT INTO orders 
VALUES 
(1, 1200, '2013-23-10', '2013-28-10'); 

上面的代碼有什麼問題嗎?MySQL錯誤1292錯誤的日期值?

回答

1

您正在使用 'YYYY-MM-DD' 格式,而你需要使用 'YYYY-MM-DD',請嘗試以下操作:

INSERT INTO orders VALUES (1, 1200, '2013-10-23', '2013-10-28'); 
0

日期格式爲'YYYY-MM-DD'

2328對於月份組分MM無效。

MySQL返回的錯誤是預期的行爲。

如果您希望MySQL返回錯誤消息,那麼您在做什麼都不一定是錯誤的。

如果您希望語句執行成功並向orders表添加行,請爲DATE列提供有效的日期值。

要麼改變字面值以匹配MySQL預期的格式,要麼使用STR_TO_DATE函數將字符串轉換爲指定的格式。

... , '2013-10-23' , ... 

... , STR_TO_DATE('2013-23-10','%Y-%d-%m') , ...