我是SQL Server 2014的初学者。我需要一些建议,从SSIS到SQL Server的数据类型转换。
我正在使用DATETIME
列,示例值为“2017-08-17 16:00:50”,格式为“YYYYMMDDHHMMSSsss”
从SSIS我使用了数据类型Unicode string [DT_WSTR]
,在SQL Server中我使用了数据类型NVARCHAR
。
当我尝试从SSIS导入数据时,它会将日期格式从2017-08-17 16:00:50更改为2017年8月17日下午4:00:50。如何防止这种情况以及当我尝试使用类似的转换或转换将varchar日期转换为datetime格式时:
使用转换
select
convert(datetime, [LastUpdateDateTime], 109) as [LastUpdateDateTime]
from
mytable
我收到了这个错误:
Msg 241,Level 16,State 1,Line 2
从字符串转换日期和/或时间时转换失败。
有演员
select
cast([LastUpdateDateTime] as datetime) as [LastUpdateDateTime]
from
mytable
我收到了这个错误:
Msg 242,Level 16,State 3,Line 2
将nvarchar数据类型转换为日期时间数据类型会导致超出范围的值。
请指教,
答案 0 :(得分:0)
您应该在转换中使用日期样式103 试试这个:
Declare @dt nvarchar(50)=CONVERT(nvarchar(50),[LastUpdateDateTime],103)
SELECT CONVERT(DATETIME2(0), @dt, 103)