用于添加时间到日期的 ssis 表达式
Posted
技术标签:
【中文标题】用于添加时间到日期的 ssis 表达式【英文标题】:ssis expression for adding time to date 【发布时间】:2019-06-14 13:57:13 【问题描述】:添加时间价值
我的日期值来自 ssis 中的某个变量。我想在这个日期添加晚上 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 兼容格式。
【问题讨论】:
您确定问题已解决吗?你能提供表达式吗? 【参考方案1】:假设你的变量是一个日期时间并且有一些时间
首先截断时间(通过转换),然后添加 20 小时。
这是另一个变量的公式:
DATEADD("hh",20, (DT_DATE)(DT_DBDATE)GETDATE())
结果: 2019 年 6 月 14 日晚上 8:00:00
只需将 getdate() 替换为您的变量即可。
【讨论】:
谢谢,但正如您在代码中看到的,变量是 int 格式。所以我们也需要转换它。 "我的日期值来自 ssis 中的某个变量。"我会提供更新。【参考方案2】:您可以简单地转换为字符串并与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")
【讨论】:
以上是关于用于添加时间到日期的 ssis 表达式的主要内容,如果未能解决你的问题,请参考以下文章