使用SQL Server模拟EXCEL INT到DATE逻辑

时间:2016-12-21 14:46:52

标签: sql sql-server excel tsql

我有一张包含以下“更新日期”字段的表格。我需要将其转换为YYYY / MM / DD,类似于excel逻辑的工作方式。图像显示正确的日期和转换它的公式。如何使用SQL将这些数字转换为图像中显示的相同日期? (N14 = 113158)

2 个答案:

答案 0 :(得分:4)

试试这个:

declare @i int = 113158
Select dateadd(year, @i/1000, @i%1000-1)

答案 1 :(得分:0)

计算当年的第一天,然后添加日期。

这样,当它是闰年时,它也会给出正确的结果。

select 
EAUPMU,  

DATEADD(day, (EAUPMU % 1000)-1, DATEFROMPARTS((1900 + EAUPMU/1000),1,1)) as [EauPmuDate],  

DATEADD(day, (EAUPMU % 1000)-1, dateadd(year,EAUPMU/1000,0)) as [EauPmuDateTime]  

from (
  values (113158),(112158)
) as T(EAUPMU);

结果:

EAUPMU  EauPmuDate  EauPmuDateTime
113158  2013-06-07  2013-06-07 00:00:00.000
112158  2012-06-06  2012-06-06 00:00:00.000