Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL如何将数字(整数)转换为日期?_Sql_Sql Server_Tsql_Sql Server 2008 R2 - Fatal编程技术网

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

SQL如何将数字(整数)转换为日期?,sql,sql-server,tsql,sql-server-2008-r2,Sql,Sql Server,Tsql,Sql Server 2008 R2,我正在使用小型商业软件并将其导入SQL Server。但也有一些数字: 75739 76910 73105 75821 75245 75605 77169 73265 75611 74073 77012 我想这代表了日期 如何将这些数字转换为日期YYYY-MM-DD和YYYYMMDD?基于SQL Server的纪元基数或1900年1月1日的零日期,这些日期是在22世纪 SELECT DATEADD(day, 75739, 0) -- 2107-05-15 00:00:00.000 还是基于日

我正在使用小型商业软件并将其导入SQL Server。但也有一些数字:

75739
76910
73105
75821
75245
75605
77169
73265
75611
74073
77012
我想这代表了日期


如何将这些数字转换为日期YYYY-MM-DD和YYYYMMDD?

基于SQL Server的纪元基数或1900年1月1日的零日期,这些日期是在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;需要更多信息。否则,一般情况下甚至不要尝试,当日期表示为数字时,那么它们表示自给定日期起的天数。在某些CAE中,您可能有一个类似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世纪


您需要了解有关这些日期格式的更多信息。

这些日期应该表示什么日期?如果这些数字和日期之间没有某种映射,我们将无法帮助您-询问您获取文件的联系人。这些日期不是转换为int的SQL server日期。例如,cast75739 as datetime->May,15 2107。那么75739是什么日期呢?可能是从一个未知的日期开始的滴答声如果我不得不猜测的话,这是从1800年1月1日开始的天数@Justin,如果你知道这种格式的具体日期,那么你可以很容易地得到转换的基准日期。