如何将 CYYMM 转换为 YYYY-MM

How to Convert CYYMM to YYYY-MM

我有一些日期列的格式为 CYYMM(例如 12012)。我想将这些转换为 SQL 服务器中的典型数据表示形式。

仅供参考。 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