SSIS到SQL Server数据导入和转换问题

时间:2017-08-18 10:07:47

标签: sql sql-server ssis

我是SQL Server 2014的初学者。我需要一些建议,从S​​SIS到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数据类型转换为日期时间数据类型会导致超出范围的值。

请指教,

1 个答案:

答案 0 :(得分:0)

您应该在转换中使用日期样式103 试试这个:

Declare @dt nvarchar(50)=CONVERT(nvarchar(50),[LastUpdateDateTime],103)
SELECT CONVERT(DATETIME2(0), @dt, 103)