从序列号生成date

我有一个客户提供date作为序列号。 他们给了我们一个Excel公式转换序列号到date,但我们使用SQL Server 2008 R2。 我想知道如果有人可以告诉我如何将这些数字转换为SQL Server中的date字段。

Excel公式:

=DATE(1900+INT(F2/1000),1,MOD(F2,1000)) 

Excel表格:

 Serial # (F2 cell) | Date Value --------------------------------- 103078 | 3/19/2003 104077 | 3/17/2004 

我需要在T-SQL中的一个语句,将采取数字和计算到正确的date结果。

 SELECT DATEADD(DAY, (@F2%1000)-1, LEFT(1900+(@F2/1000),4)+'0101') 

从2个示例序列号中生成正确的date。 很显然,用你得到的F2值代替@ F2。

在SQLFiddle上工作 (虽然我不确定如何使variables在那里工作,所以序列号是硬编码的)

尝试这个:

 select dateadd(day, @f2 % 1000 - 1, dateadd(year, @f2 / 1000, '1900-1-1'))