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

SQL Server中按格式将varchar列转为date报错求助

解决SQL Server中varchar日期转date类型的转换失败问题

错误原因

你执行的语句Select CONVERT(date, '1403-02-17', 103)触发了以下错误:

消息 241,级别 16,状态 1,第 171 行
从字符串转换日期和/或时间时失败。

问题出在样式参数103上:这个参数对应dd/mm/yyyy(日/月/年)的日期格式,但你的目标字符串'1403-02-17'是YYYY-mm-dd(年-月-日)格式。SQL Server按103规则解析时,会把1403识别为“日”,这显然超出了日期的合法范围(日的最大值为31),因此转换失败。

正确转换方式

YYYY-mm-dd是SQL Server默认兼容的日期格式,无需指定额外样式参数,直接转换即可:

方式1:使用CONVERT函数

SELECT CONVERT(date, '1403-02-17')

方式2:使用CAST函数

SELECT CAST('1403-02-17' AS date)

如果要对整列进行转换,直接替换为列名即可:

SELECT CONVERT(date, your_date_column) FROM your_table;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 08:04:55