如何转换在SQL中存储为nvarchar的Exceldate?
我使用了一个数据stream任务来将Excel数据插入到SQL中,但是它使得Excel中的date字段变成了SQL中的nvarchar字段。
我对数据库做了很多修改。 在这一点上不能截断和重新加载数据。
例如,excel中的4/19/2013在SQL中变成了41383。
现在有可能把它转换成date吗?
Excel中的数字表示forms为41383
,这是自1901年1月1 日以来的天数。因此,您可以尝试从Excel中将这个数字值添加到1899-12-30
以获得所需的值date。
SQL Server:
DATEADD(d, 41383, '1899-12-30')
MySQL的:
DATE_ADD('1899-12-30', INTERVAL 41383 DAY)
旁注:我们使用1899-12-30
作为起点而不是1900-01-01
的原因与Excel中的错误(不是SQL)有关。
假设SQL Server:
Declare @N int = 42515 Select DateAdd(DAY,@N,'1899-12-30')
返回5/25/2016