我想要一个SSIS表达式,它将给我上周的星期日。
对应的sql server查询如下:
选择转换(日期,DATEADD(wk,DATEDIFF(周六,转换(日期,@ report_dt)), - 1))
我想在SSIS表达式中获得相同的结果。
由于
答案 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
,因此只返回日期。