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

SQL Server中字符串(25-11-2023 13:33:46+0000)转日期失败求助

解决SQL Server中转带时区的日-月-年格式字符串为date类型的问题

直接使用CAST或CONVERT失败的原因是SQL Server默认无法识别25-11-2023 13:33:46+0000这种带时区后缀的日-月-年格式,以下是几种可行的解决方法:

方法1:使用TRY_PARSE解析(推荐)

TRY_PARSE可以直接识别带时区的日期格式,指定区域格式为en-GB(对应日-月-年)即可转换:

SELECT TRY_PARSE('25-11-2023 13:33:46+0000' AS date USING 'en-GB') AS ConvertedDate;

如果需要保留时区信息,可先转为datetimeoffset再转date:

SELECT CAST(TRY_PARSE('25-11-2023 13:33:46+0000' AS datetimeoffset) AS date) AS ConvertedDate;

方法2:截取时区部分后用CONVERT指定样式

先通过LEFT函数截取掉末尾的时区后缀,再用样式103(对应dd/mm/yyyy格式)转换:

SELECT CONVERT(date, LEFT('25-11-2023 13:33:46+0000', 19), 103) AS ConvertedDate;

方法3:修正时区格式后转为datetimeoffset再转date

将字符串中的+0000替换为+00:00(符合SQL Server的datetimeoffset时区格式要求),转换后再转为date类型:

SELECT CAST(CONVERT(datetimeoffset, REPLACE('25-11-2023 13:33:46+0000', '+0000', '+00:00')) AS date) AS ConvertedDate;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 05:05:05