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錯誤的日期值?
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錯誤的日期值?
您正在使用 'YYYY-MM-DD' 格式,而你需要使用 'YYYY-MM-DD',請嘗試以下操作:
INSERT INTO orders VALUES (1, 1200, '2013-10-23', '2013-10-28');
日期格式爲'YYYY-MM-DD'
。
23
和28
對於月份組分MM
無效。
MySQL返回的錯誤是預期的行爲。
如果您希望MySQL返回錯誤消息,那麼您在做什麼都不一定是錯誤的。
如果您希望語句執行成功並向orders
表添加行,請爲DATE列提供有效的日期值。
要麼改變字面值以匹配MySQL預期的格式,要麼使用STR_TO_DATE
函數將字符串轉換爲指定的格式。
... , '2013-10-23' , ...
或
... , STR_TO_DATE('2013-23-10','%Y-%d-%m') , ...