MySQL Workbench执行INSERT语句报错ERROR 1292:日期值不正确
MySQL INSERT语句日期值错误(ERROR 1292)解决方法
错误根源:你把日期函数用单引号
'包起来了,MySQL会把'CURDATE()'这类内容当成普通字符串,不会执行函数计算日期,自然不符合日期列的格式要求,触发ERROR 1292。正确的SQL写法:
INSERT INTO `advantagedb`.`quests` (`QuestID`, `QuestName`, `Description`, `StartDate`, `EndDate`, `Reward`) VALUES ('2', 'q2', 'qq2', CURDATE(), DATE_ADD(NOW(), INTERVAL 1 DAY), '13');关键:
CURDATE()、DATE_ADD(NOW(), INTERVAL 1 DAY)这类日期函数绝对不能加单引号,让MySQL直接执行函数返回合法的日期值。额外排查项:
- 检查
StartDate和EndDate列的数据类型,必须是DATE、DATETIME或TIMESTAMP类型,要是列类型是VARCHAR,就算能存字符串也不建议用日期函数,直接写'2024-05-20'这种标准格式的日期字符串。 - 要是在MySQL Workbench的Result Grid手动插行,直接输入
CURDATE()无效,要么手动填具体日期,要么执行上面的SQL脚本插入。
- 检查
内容的提问来源于stack exchange,提问作者Instancer
相关产品推荐
相关产品推荐

