如何将SQL Server中格式为“Tue Feb 18 00:00:00 CST 2025”的日期转为可用格式?
解决SQL Server中非标准日期字符串的转换问题
SQL Server确实没有直接对应Tue Feb 18 00:00:00 CST 2025这种格式的CONVERT样式号,但不需要用复杂的SUBSTRING拆分拼接,有更简便的方法:
方法一:提取核心日期段+CONVERT转换
先截取字符串里的Feb 18 2025部分,这部分刚好匹配CONVERT的样式100(英文月缩写+日期+年份),直接转成日期类型:DECLARE @dateStr VARCHAR(50) = 'Tue Feb 18 00:00:00 CST 2025' SELECT TRY_CONVERT(DATE, SUBSTRING(@dateStr, 5, 11), 100) AS ConvertedDate转成DATE类型后,报表工具可以直接基于日期类型做任意格式展示,比处理字符串灵活得多。
方法二:用TRY_PARSE直接解析(SQL Server 2012及以上版本可用)
TRY_PARSE支持识别英文格式的日期字符串,指定语言为en-US即可自动解析:DECLARE @dateStr VARCHAR(50) = 'Tue Feb 18 00:00:00 CST 2025' SELECT TRY_PARSE(@dateStr AS DATE USING 'en-US') AS ConvertedDate这种方法更简洁,不需要手动截取字符串;如果报表需要保留时间部分,把DATE换成DATETIME即可,时区如果不影响业务需求的话可以忽略,若需处理时区则需额外调整。
内容的提问来源于stack exchange,提问作者rvphx
相关产品推荐
相关产品推荐

