首页 > 解决方案 > SSIS 日期和时间连接

问题描述

我有一个客户想要显示特定日期 (1754-01-01) 但将当前时间转换为 DateTime 的 SQL 表格式

我的平面文件中没有任何时间列可供参考,因此它将是GETDATE()系统变量中的一个或 @StartTime(除非有其他方法)。

我已经为此找到了很多途径,从DT_DBTIMESTAMPdate 和 formatted GETDATE()、 formatted@starttime以及与 ( DT_DBTIME) 的连接尝试从一开始就删除日期。我觉得我已经用尽了我对 SSIS 的了解。

我希望有人以前有过这种情况,或者知道我该如何解决。

标签: sql-serverdatetimetimessisetl

解决方案


您可以使用该DATEPART()功能从当前日期中提取小时、分钟和秒。尝试将以下表达式添加到日期值中,该表达式以以下格式从当前日期中提取时间值hh:mm:ss

RIGHT("0" + (DT_WSTR,50)DATEPART("hh",GETDATE()),2) + ":" + RIGHT("0" + (DT_WSTR,50)DATEPART("mm",GETDATE()),2) + ":" + RIGHT("0" + (DT_WSTR,50)DATEPART("ss",GETDATE()),2))

整个表达式应如下所示:

(DT_DBTIMESTAMP)("1754-01-01 " + RIGHT("0" + (DT_WSTR,50)DATEPART("hh",GETDATE()),2) + ":" + RIGHT("0" + (DT_WSTR,50)DATEPART("mm",GETDATE()),2) + ":" + RIGHT("0" + (DT_WSTR,50)DATEPART("ss",GETDATE()),2))

推荐阅读