我正在使用MS Integrations Services,我有一个来自sql查询的包返回日期&时间场。从这个来源,我必须从日期和时间中提取小时。时间场。一旦我得到了小时,我需要建立以下关系:
Hour Reff.
<3 0
<6 1
<9 3
...
我必须保存日期&amp;时间场和新的Reff。字段目标表。
我尝试使用'Derived Column Transformation Editior'模块,但我不确定将什么用作派生列和表达式。
我尝试使用以下表达式:
datepart(hh,[Date_Time])
这显示为红色,有不同的错误(无法解析表达式,表达式无效,...),并且无论如何它只会给出小时。
有人知道我可以实现所需的转型吗?
由于
答案 0 :(得分:4)
您的公式中有错误。它应该有双引号所需的日期部分
DATEPART("hh",Date_Time)
我创建了一个基本包
我使用以下查询生成一些数据
SELECT
dateadd(hh, D.rn, current_timestamp) AS Date_Time
FROM
(
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS rn
FROM sys.all_columns AS SAC
) D(rn);
我在第一个派生列转换中创建了一个名为Hour
的新列,并使用该表达式。请注意,列名称区分大小写。
DATEPART("hh",Date_Time)
有很多方法可以解决这个问题。我采用快速但难以维护的方法,使用三元运算符来识别Reff
的值([Hour] < 3) ? 0 : ([Hour] < 6) ? 1 : ([Hour] < 9) ? 3 : -1
不知道Reff是什么,似乎可以用数学方法计算出来,但无论你得到答案,它都会在这里。