所以你试过了吗?
Dts.Variables["Query_AccountingDay"].Value = Convert.ToDateTime(Dts.Variables["Override_AccountingDay"].Value.ToString());
如果这不起作用,请介意抓住变量窗口的快速截图,以便我们验证数据类型?
矿看起来像这样,倍率值是2007-07-07,查询2011-10-19
脚本任务正是如此配置
身体的代码看起来像此
public void Main()
{
MessageBox.Show(String.Format("{0}:{1}", "Override_AccountingDay", Dts.Variables["Override_AccountingDay"].Value));
MessageBox.Show(String.Format("Before {0}:{1}", "Query_AccountingDay", Dts.Variables["Query_AccountingDay"].Value));
Dts.Variables["Query_AccountingDay"].Value = Convert.ToDateTime(Dts.Variables["Override_AccountingDay"].Value.ToString());
Dts.TaskResult = (int)ScriptResults.Success;
MessageBox.Show(String.Format("After {0}:{1}", "Query_AccountingDay", Dts.Variables["Query_AccountingDay"].Value));
}
通过消息框执行结果
---------------------------
---------------------------
Override_AccountingDay:7/7/2007 7:37:36 AM
---------------------------
OK
---------------------------
---------------------------
---------------------------
Before Query_AccountingDay:10/19/2011 7:37:41 AM
---------------------------
OK
---------------------------
---------------------------
---------------------------
After Query_AccountingDay:7/7/2007 7:37:36 AM
---------------------------
OK
---------------------------
啊,这一个固定它。我试图用(DateTime)投射,我也在我的代码中发现了一个小错误,这也导致了一个问题。感谢这个写得很好的答案! – Cheyne