You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL插入数据时str_to_date转换'3/6/2009'报日期值不正确如何解决?

问题原因

报错的核心原因是STR_TO_DATE函数的格式参数和输入的日期字符串格式不匹配:

  • 输入的日期字符串为3/6/2009,采用斜杠/作为分隔符,顺序为月/日/年
  • 你使用的格式参数为%m-%d-%Y,采用横杠-作为分隔符,二者规则不一致,导致无法解析为合法日期值
    STR_TO_DATE函数要求格式参数和输入字符串的分隔符、各部分顺序必须完全对应才能正确解析

解决方法

方法1:修改格式参数匹配输入的日期字符串

把STR_TO_DATE里的格式占位符的分隔符改成斜杠即可,修改后的插入语句如下:

insert into movie
(movieid, title, genreid, releasedate, rating, movielength, directorid)
values
('1', 'Watchmen', '10',str_to_date('3/6/2009','%m/%d/%Y'), '4.4', '2h43m', '1021');

方法2:修改日期字符串的分隔符匹配现有格式参数

如果要保留%m-%d-%Y的格式规则,就把输入的日期字符串的斜杠改成横杠:

insert into movie
(movieid, title, genreid, releasedate, rating, movielength, directorid)
values
('1', 'Watchmen', '10',str_to_date('3-6-2009','%m-%d-%Y'), '4.4', '2h43m', '1021');

方法3:直接使用SQL标准日期格式

不需要调用STR_TO_DATE函数,直接用'YYYY-MM-DD'格式的字符串赋值给日期字段即可,兼容性更强:

insert into movie
(movieid, title, genreid, releasedate, rating, movielength, directorid)
values
('1', 'Watchmen', '10','2009-03-06', '4.4', '2h43m', '1021');

内容的提问来源于stack exchange,提问作者Rico

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 22:36:05