MySQL错误1411:日期时间值不正确[已关闭]

pgvzfuti  于 2023-05-21  发布在  Mysql
关注(0)|答案(2)|浏览(208)

**关闭。**这个问题是not reproducible or was caused by typos。目前不接受答复。

此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这一个是解决的方式不太可能帮助未来的读者。
2小时前关闭
Improve this question
我正在尝试将日期沿着其他数据插入到SQL表中:

insert into weather values
(1, 'London', -1, str_to_date('2021-01-01','y%-m%-d%')),
(2, 'London', -2, str_to_date('2021-01-02','y%-m%-d%')),
(3, 'London', 4, str_to_date('2021-01-03','y%-m%-d%')),

但我收到下面的消息:
错误代码:1411日期时间值不正确:
'2021-01-01'用于函数str_to_date
我尝试了不同的日期组合,并在网上查找,但找不到一个,因为格式看起来不错。甚至MySQL文档也有相同的语法。

6pp0gazn

6pp0gazn1#

正确的格式是:'%Y-%m-%d'
%y是2位数年份格式,适用于str_to_date('21-01-01','%y-%m-%d')
所以你的查询应该是:

insert into weather values
(1, 'London', -1, str_to_date('2021-01-01','%Y-%m-%d')),
(2, 'London', -2, str_to_date('2021-01-02','%Y-%m-%d')),
(3, 'London', 4, str_to_date('2021-01-03','%Y-%m-%d'));

这里的医生

jfewjypa

jfewjypa2#

到现在为止,您应该知道您的格式中有一个错别字,将字母与'%'符号交换('y %-m%-d%'而不是'%Y-%m-% d')。
虽然您在日期字符串中遵循标准格式,但可以完全避免STR_TO_DATE模式匹配操作。DBMS将对您的字符串应用隐式转换,因为相应的第4个字段是用DATE数据类型声明的。

INSERT INTO weather VALUES
(1, 'London', -1, '2021-01-01'),
(2, 'London', -2, '2021-01-02'),
(3, 'London', 4, '2021-01-03');

输出

身份证地点瓦尔日期
1伦敦-12021-01-01 2021- 01-01
2伦敦-22021-01-02 2021-01-02
3伦敦2021-01-03 2021-01-03

检查演示here

相关问题