我正在使用SQL Server 2008,我从平面文件导入。我无法正确导入datetime
列,因此我暂时将其指定为nvarchar(50)
。
现在我想将其转换为datetime2
格式。但是,这样做时,我收到错误
从字符串转换日期和/或时间时转换失败。
我nvarchar(50)
列中当前的数据如下所示:
20140804
我需要将其转换为:
2014-08-04 00:00:00.0000000.
请注意,我不仅要在表格中转换一个日期,还要转换所有StartDATE
值,并将它们插入另一个表格
感谢任何帮助。
答案 0 :(得分:2)
Insert into targettab(datecol,<othercols....>)
select cast(datefield as datetime2),<othercols...> from sourcetab
您可以使用cast
功能
答案 1 :(得分:0)
首先需要转换为char,因为转换为int会将这些天数添加到1900-01-01
select CONVERT (datetime,convert(char(8),rnwl_efctv_dt ))
这里有一些例子
select CONVERT (datetime,5)
1900-01-06 00:00:00.000
select CONVERT (datetime,20100101)
爆炸,因为您无法在1900-01-01之间添加20100101天......超出限制
首先转换为char
declare @i int
select @i = 20100101
select CONVERT (datetime,convert(char(8),@i))
答案 2 :(得分:-1)
SELECT convert(varchar, StartDATE , 113) from ur table