SQL如何将数字(整数)转换为日期?

时间:2012-08-29 13:40:53

标签: sql sql-server tsql sql-server-2008-r2

我正在使用小型商务软件并​​导入到SQL Server。但有数字:

75739
76910
73105
75821
75245
75605
77169
73265
75611
74073
77012

代表我想的日期。

如何将这些数字转换为日期YYYY-MM-DDYYYYMMDD

2 个答案:

答案 0 :(得分:5)

基于1900年1月1日的SQL Server纪元(基准或零日期),这些日期是在22世纪

SELECT DATEADD(day, 75739, 0) -- 2107-05-15 00:00:00.000

或者他们是基于日期时间的下限?这是1960-ish,适用于出生日期

SELECT DATEADD(day, 75739, '17530101') -- 1960-05-15 00:00:00.000

tl; dr需要更多信息。否则甚至不尝试

答案 1 :(得分:1)

通常,当日期表示为数字时,它们表示自给定日期以来的天数。在某些情况下,您可能有一个像20120829这样的数字,实际上可以解析为YYYYMMDD。但这些日期似乎并不是那种形式。另一种格式可能是YYday-of-year,因此100001将是2010年1月1日。但是,这些日期也不会以该格式出现。

假设这些是自给定日期以来的天数,那么在SQL Server中您将使用:

select dateadd(day, <val>, <basedate>)

对于Excel,您可以使用像:

之类的东西
select dateadd(day, <val>, '1899-12-31')

然而,这些日期在22世纪。

您需要详细了解这些日期的格式。