如何将CYYMM转换为YYYY-MM



我有一些日期列格式为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

相关内容

  • 没有找到相关文章

最新更新