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

解决SQL中varchar类型ExpiryDate列转date类型的转换失败问题

解决SQL Server中varchar转date的格式错误问题

你的问题出在日期字符串格式与SQL Server默认解析规则不匹配:你的数据是dd/mm/yyyy(日/月/年)格式,而SQL Server默认按mm/dd/yyyy(月/日/年)解析,导致部分日期(比如15/03/2017,15超过了月份的最大取值12)无法转换。

以下是两种可靠的解决方法:

方法1:使用CONVERT指定日期格式

用CONVERT函数并指定style参数103(对应dd/mm/yyyy格式),它会自动忽略字符串末尾的00:00时间部分,兼容两种格式的输入:

SELECT CONVERT(date, [ExpiryDate], 103) AS Expiry_Date 
FROM [dbo].[training]

方法2:处理脏数据(可选)

如果列中存在格式错误的脏数据,用TRY_CONVERT替代CONVERT,它会返回NULL而非抛出错误,方便排查问题:

SELECT TRY_CONVERT(date, [ExpiryDate], 103) AS Expiry_Date 
FROM [dbo].[training]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 20:06:27