我使用数据流任务将Excel数据插入到SQL中,但是它将Excel中的日期字段设置为SQL中的nvarchar字段。如何将存储为nvarchar的Excel日期转换为SQL?
我对数据库做了很多改变。在这一点上不能截断和重新加载数据。
例如,excel中的4/19/2013在SQL中转换为41383。
是否有可能将此转换为此时的日期?
我使用数据流任务将Excel数据插入到SQL中,但是它将Excel中的日期字段设置为SQL中的nvarchar字段。如何将存储为nvarchar的Excel日期转换为SQL?
我对数据库做了很多改变。在这一点上不能截断和重新加载数据。
例如,excel中的4/19/2013在SQL中转换为41383。
是否有可能将此转换为此时的日期?
的4/19/2013
数字表示是在Excel中,这是自1901大致1月1日,中天数41383
。因此,您可以尝试从Excel中添加此数值作为天数到1899-12-30
以获得您想要的日期。
SQL服务器:
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')
返回2016年5月25日
你正在使用什么版本的SQL(MySQL,SQL Server等)? –