**关闭。**这个问题是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文档也有相同的语法。
2条答案
按热度按时间6pp0gazn1#
正确的格式是:
'%Y-%m-%d'
%y
是2位数年份格式,适用于str_to_date('21-01-01','%y-%m-%d')
所以你的查询应该是:
这里的医生
jfewjypa2#
到现在为止,您应该知道您的格式中有一个错别字,将字母与'%'符号交换('y %-m%-d%'而不是'%Y-%m-% d')。
虽然您在日期字符串中遵循标准格式,但可以完全避免
STR_TO_DATE
模式匹配操作。DBMS将对您的字符串应用隐式转换,因为相应的第4个字段是用DATE
数据类型声明的。输出:
检查演示here。