如何用SQL将日期字符串12012017转换为dd/mm/yyyy格式DATE及格式问题
SQL日期格式转换:获取dd-mm-yyyy格式日期
已知原始日期字符串为Periode = 12012017,你已经通过以下SQL将其转换为DATE类型:
SELECT CONVERT(DATE, SUBSTRING(Periode,1,2) +'/'+SUBSTRING(Periode,3,2)+'/'+SUBSTRING(Periode,5,4)) AS TheDate
要输出13-01-2017这种dd-mm-yyyy格式的日期,有两种常见处理方式:
方式一:直接处理原始字符串(无需转DATE类型)
如果不需要DATE类型的中间结果,直接对原始字符串拆分拼接,一步得到目标格式:
SELECT SUBSTRING(Periode, 1, 2) + '-' + SUBSTRING(Periode, 3, 2) + '-' + SUBSTRING(Periode, 5, 4) AS FormattedDate
方式二:基于已转换的DATE类型字段格式化
如果已经得到DATE类型的TheDate字段,可通过以下两种方法格式化:
- 使用CONVERT+REPLACE:利用CONVERT的105样式生成
dd.mm.yyyy格式,再替换分隔符为短横线
SELECT REPLACE(CONVERT(VARCHAR, TheDate, 105), '.', '-') AS FormattedDate
- 使用FORMAT函数(SQL Server 2012及以上版本支持):直接指定格式字符串,语法更直观
SELECT FORMAT(TheDate, 'dd-MM-yyyy') AS FormattedDate
内容的提问来源于stack exchange,提问作者Rafael99
相关产品推荐
相关产品推荐

