【问题标题】:How to convert SQL statement to an expression in SSIS package如何将 SQL 语句转换为 SSIS 包中的表达式
【发布时间】:2014-04-21 14:12:26
【问题描述】:

我有以下 SQL 语句:

DATEADD( DAY, 0 - (DATEPART(weekday, GETDATE()) % 7), GETDATE() )

返回:

2014-04-19 10:10:02.757

如何更改要在 SSIS 包表达式中使用的 SQL 语句,以便以这种格式获取最后一个星期六的日期:

4-19-2014

当我在表达式生成器中尝试 sql 语句时,我收到以下错误:

【问题讨论】:

  • 把day放在双引号中:DATEADD( "DAY"... 在这些类型的参数周围加上双引号在SSIS中将是非常标准的。所以你的WEEKDAY 也需要引号。
  • 感谢您的回复,但现在我收到 Cannot convert 'system.datetime' to 'system.string' 错误。
  • @SiKni8 - 请问您为什么将其保存在表达式中?
  • 哦,好问题。因为文件名将是日期,所以例如,它将是 mm-dd-yyyy-.xlsx,并且每个星期六都会更改。

标签: sql sql-server ssis


【解决方案1】:

尝试使用以下表达式:

(DT_WSTR,10)(RIGHT("0" + (DT_STR, 2, 1252) DATEPART("mm" , DATEADD("D", 0 - (DATEPART("weekday", GETDATE()) % 7) , GETDATE())), 1) + "-" + RIGHT("0" + (DT_STR, 2, 1252) DATEPART("dd" , DATEADD("D", 0 - (DATEPART("weekday", GETDATE()) % 7) , GETDATE())), 2) + "-" + RIGHT("0" + (DT_STR, 4, 1252) DATEPART("yy" , DATEADD("D", 0 - (DATEPART("weekday", GETDATE()) % 7) , GETDATE())), 4))

【讨论】:

  • 我收到 A truncation occurred during the evaluation of the expression 错误
  • 抱歉,字符数记错了。我已经更新了答案
  • (DT_WSTR,10)(RIGHT("0" + (DT_STR, 2, 1252) DATEPART("mm" , DATEADD("D", 0 - (DATEPART("weekday", GETDATE()) % 7) , GETDATE())), 2) + "-" + RIGHT("0" + (DT_STR, 4, 1252) DATEPART("yy" , DATEADD("D", 0 - (DATEPART("weekday", GETDATE()) % 7) , GETDATE())), 2)) 我如何修改它以给我上个月而不是当月的数字?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多