2017-02-12 89 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') , ...