ssis表达式,用于增加时间

时间:2019-06-14 13:57:13

标签: sql sql-server datetime ssis etl

添加时间值

我的日期值来自sis中的某个变量。我想在此日期添加晚上8点的时间戳。该怎么做?

DECLARE @a  int
SET @a = 20190611
--SELECT CONVERT(DATETIME,   CONVERT(DATE, CAST(CAST(@a AS INT) AS CHAR(8)), 112)  , @a)
SELECT DATEADD("hh", 20,CONVERT(DATETIME,   CONVERT(DATE, CAST(CAST(@a AS INT) AS CHAR(8)), 112)  , @a) )

我需要将此表达式转换为SSIS兼容格式。

2 个答案:

答案 0 :(得分:1)

您可以简单地转换为字符串并与200000连接,然后重新转换为整数以获得yyyyMmddHHmmss格式:

(DT_I4)((DT_WSTR,20)@[User::DateIntegerVariable] + "200000")

如果此问题与您的previous question有关,请使用以下命令:

(DT_I4)(REPLACE(SUBSTRING((DT_WSTR,50)DATEADD("dd", -1 - (DATEPART("dw", getdate()) % 7), getdate()),1,10),"-","") + "200000")

答案 1 :(得分:0)

假设您的变量是日期时间,并且有一段时间

首先(通过转换)截断时间,然后增加20小时。

这是另一个变量的公式:

DATEADD("hh",20, (DT_DATE)(DT_DBDATE)GETDATE())

结果: 6/14/2019 8:00:00

只需用变量替换getdate()。