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

SQL Server日期转换报错:dd.mm.yyyy转yyyy-mm-dd失败如何解决?

解决SQL日期转换错误(Error Msg 241)的方法

这个错误很常见,根源在于你使用的日期格式代码和源数据的格式不匹配。让我一步步帮你解决:

1. 为什么会报错?

你用了格式代码120,这个代码对应的是yyyy-mm-dd(ISO标准格式),但你的源数据是dd.mm.yyyy格式。SQL Server尝试用yyyy-mm-dd的规则去解析dd.mm.yyyy的字符串,自然会失败(比如把15.08.2024当成年份15、月份08,这显然不符合日期逻辑)。

2. 正确的转换语句

针对dd.mm.yyyy格式,SQL Server对应的格式代码是104(德语日期格式),直接用这个代码就能正确转换:

SELECT CONVERT(date, WEEK_DATE, 104) FROM z_fact

另外,你之前加的CAST(WEEK_DATE as nvarchar(220))是多余的——如果WEEK_DATE本身就是字符串类型(varchar/nvarchar),直接传给CONVERT即可;如果是其他类型,SQL Server会自动处理隐式转换,不需要手动CAST。

3. 处理脏数据(可选但重要)

如果你的表中存在无效日期(比如30.02.2023、13.13.2024这类不符合日期规则的字符串),即使换了格式代码,还是会触发同样的错误。这时候可以用TRY_CONVERT替代CONVERT,它会返回NULL而不是报错,帮你定位问题数据:

SELECT 
    WEEK_DATE AS 原始日期,
    TRY_CONVERT(date, WEEK_DATE, 104) AS 转换后日期
FROM z_fact
WHERE TRY_CONVERT(date, WEEK_DATE, 104) IS NULL

这条语句会列出所有无法转换的无效日期,你可以先清理这些脏数据,再执行正常的转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:01:38