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') , ...