我有一些日期列格式为CYYMM(例如12012)。我想将这些转换为SQL Server中的典型数据表示。
供参考。C代表世纪
。12012应为2020-12(2020年12月)
另一个
11210应该是2012-10(2012年10月)。
我怎样才能高效而安全地完成这一任务?例如,我已经完成了这样做:
declare @dte int = 12012;
select '20' + left(substring(cast(@dte as char(5)), 2, 5),2) + '-' + right(@dte,2)
但我想知道是否有一个更原生的解决方案,不依赖于硬编码'20'。
假设第一个字符为1或0
declare @dte int = 02012;
Select left((@dte/10000+19),2)+stuff(right(@dte,4),3,0,'-')
结果
1920-12