For Loop Eval Expression不能将布尔值转换为字符串

时间:2018-06-12 11:42:39

标签: sql ssis

我希望根据日期小于今天的日期多次迭代数据流,其中我通过for循环容器中的assign表达式将该日期更改为今天的日期,但是我&# 39;我有问题。

我已经使用项目参数(用户变量)设置了初始表达式和Assign Expression,但是如果将输出保持为布尔值,并且将其更改为字符串,则无法通过Eval表达式错误,如图所示,在For循环容器本身中创建一个错误,它需要一个布尔值。

分配表达式:

REPLACE((DT_WSTR, 10)(DT_DBDATE)DATEADD( "day", 1, @[$Project::StartDate]  ),"-","")

初始表达:

REPLACE((DT_WSTR, 10)(DT_DBDATE) @[$Project::StartDate] ,"-","")

评估表达式:

@[$Project::StartDate] < getdate() ? "Y":"N"

如果我将Eval Expression更改为@ [$ Project :: StartDate]&lt; getdate()我在表达式生成器中遇到错误,无法将布尔值转换为字符串

enter image description here

1 个答案:

答案 0 :(得分:1)

创建类型为DateTime的用户变量(在此示例中称为YourNewDatetimeVariable),然后使用以下表达式:

初始表达:

@[User::YourNewDatetimeVariable] = @[$Project::StartDate]

评估表达式:

@[User::YourNewDatetimeVariable] < GETDATE()

分配表达式:

@[User::YourNewDatetimeVariable] = DATEADD("d", 1,  @[User::YourNewDatetimeVariable])