我在varchar中有这个Timestr28/12/2016 16:39:01
如何在 SSIS 中将列派生为日期和时间
期望的结果
日期2016-12-28
格式的日期
时间16:39:01
格式
到目前为止,这就是我在 SQL 中所拥有的
SELECT FORMAT(CAST((SUBSTRING(TimeStr,12,8)) AS DATETIME),'hh:mm:ss tt') AS Time
我在varchar中有这个Timestr28/12/2016 16:39:01
如何在 SSIS 中将列派生为日期和时间
期望的结果
日期2016-12-28
格式的日期
时间16:39:01
格式
到目前为止,这就是我在 SQL 中所拥有的
SELECT FORMAT(CAST((SUBSTRING(TimeStr,12,8)) AS DATETIME),'hh:mm:ss tt') AS Time
要将您的 varchar 转换为日期时间,如果您的数据合理,我会建议 Try_Convert() 如果 2012+,如果不只是 Convert() 可以解决问题。
try_convert(datetime,Timestr,103) -- returns 2016-12-28 16:39:01.000
使用 Format()
Declare @Timestr varchar(25) = '28/12/2016 16:39:01'
Select DateTime12 = format(try_convert(datetime,@Timestr,103),'yyyy-MM-dd hh:mm:ss tt')
,DateOnly = format(try_convert(datetime,@Timestr,103),'yyyy-MM-dd')
,Time12 = format(try_convert(datetime,@Timestr,103),'hh:mm:ss tt')
,Time24 = format(try_convert(datetime,@Timestr,103),'HH:mm:ss')
退货
DateTime12 DateOnly Time12 Time24
2016-12-28 04:39:01 PM 2016-12-28 04:39:01 PM 16:39:01