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