SSIS上周末的最后一个星期天

时间:2015-10-29 10:34:48

标签: ssis sql-server-2008-r2 etl msbi

我想要一个SSIS表达式,它将给我上周的星期日。

对应的sql server查询如下:

选择转换(日期,DATEADD(wk,DATEDIFF(周六,转换(日期,@ report_dt)), - 1))

我想在SSIS表达式中获得相同的结果。

由于

2 个答案:

答案 0 :(得分:0)

假设您的日期保存在名为report_dt的变量中,这对我有用:

(DT_DATE)LEFT((DT_WSTR, 30)DATEADD("Day", -1 * (DATEPART("Weekday", @[User::report_dt]) + 7), @[User::report_dt]), 10)

但不确定这是否属于区域安全 - 但它在英国有效。

答案 1 :(得分:0)

这将使用变量report_dt

为您提供上周日
(DT_DBDATE)DATEPART("dw",@[User::report_dt]) == (DT_DBDATE)1 ? @[User::report_dt] : DATEADD("day",-(DATEPART("dw",@[User::report_dt]) - 1),@[User::report_dt])

它被转换为DT_DBTIME,因此只返回日期。