You need to enable JavaScript to run this app. SQL Server如何将yyyy-MM-ddTHH:mm格式自定义时间字符串转datetime?
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server如何将yyyy-MM-ddTHH:mm格式自定义时间字符串转datetime?

SQL Server 内置的CONVERT函数不支持传入自定义格式串,仅支持使用预设的格式码,你遇到报错的原因是:格式码126对应的ISO 8601格式要求时间部分必须完整到秒(格式为HH:mm:ss[.mmm]),你传入的字符串仅到分钟维度,缺少秒位因此触发转换失败。

你可以通过以下两种方案完成转换:

方案1:兼容全版本SQL Server的补位转换

直接给原始字符串补全秒位:00,即可适配126格式码的要求,该方案性能最优:

DECLARE @Test DATETIME2 = CONVERT(DATETIME2, '2022-08-19T20:25' + ':00', 126)

方案2:SQL Server 2012及以上版本的自定义解析

如果需要更灵活的自定义格式匹配,可以使用PARSE/TRY_PARSE函数完成解析,不需要手动补位:

-- 直接解析符合格式的字符串
DECLARE @Test DATETIME2 = PARSE('2022-08-19T20:25' AS DATETIME2)

-- 用TRY_PARSE避免非法输入导致整段SQL报错,非法输入会返回NULL
DECLARE @TestSafe DATETIME2 = TRY_PARSE('2022-08-19T20:25' AS DATETIME2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 01:57:03