创建 2 个变量来存储 XML 列日期值,另一个用于获取当前日期。要编写表达式,请选择变量,右键单击它。在属性窗口中设置EvaluateAsExpression =true
并编写expression
Name DataType Expression
ExecDate DateTime
CurrentDate DateTime GETDATE()
使用Execute SQL Task
.Set Resultset
toSingle Row
并编写以下代码从表中的 XML 列中读取日期值
SELECT
convert(datetime,XMLData.value('(/Code/@date)[1]', 'varchar(10)'),103) as PkgDate
from yourTable
SQL Fiddle中的演示
在resultset tab
地图中,上面带有变量的 sql 查询的输出ExecDate
Result Name Variable Name
PkgDate ExecDate
在Precedence ConstraintSEND Mail TASK
之后放置另一个 Task 或组件 ExExecute SQL Task
并写一个表达式。
Expression : @ExecDate==@CurrentDate
只有当 XML 列中的日期值与存储在变量中的当前日期匹配时,才会执行@CurrentDate
之后的其他组件Execute SQL Task
。
today's date= (Code date -2) or today's date = (code date + 1) run a mailer task.
为了执行上述表达式,您需要更改 sql 代码Execute SQL Task
获取 CodeDate +1
SELECT
Dateadd(day,1,convert(datetime,XMLData.value('(/Code/@date)[1]', 'varchar(10)'),103)) as PkgDate
from yourTable
我现在没有 SSIS 环境来测试它,但你应该这样做