在SSIS脚本组件中分配一个日期变量
本文关键字:一个 日期 变量 脚本 SSIS 组件 分配 | 更新日期: 2023-09-27 18:10:09
在我的脚本组件中,我试图将值分配给Date
列(数据类型为DT_DATE
)。这些是c#中的DateTime
对象,所以我认为以下内容可以工作:
FooBuffer.Datevar = DateTime.Now;
它编译了,但是在运行时给出了一个错误:
Error: 0xC020901C at FoobarFlow, OLE DB Destination [77]: There was an error with OLE DB Destination.Inputs[OLE DB Destination Input].Columns[Datevar] on OLE DB Destination.Inputs[OLE DB Destination Input]. The column status returned was: "The value could not be converted because of a potential loss of data.".
我的猜测是,由于c#中的DateTime
类被设计为具有高达秒的精度(甚至毫秒-不确定),而DT_DATE
的精度仅上升到天,因此可能会有信息丢失。
那么问题是,我如何正确地分配这样一个列的值?是否有任何方法转换DateTime
对象到Date
分配之前?
假设在任意命名的变量newDate
中有一个DateTime值,请尝试以下操作:
FooBuffer.DateVar = new DateTime(newDate.Year,
newDate.Month,
newDate.Day,
newDate.Hour,
newDate.Minute,
newDate.Second);
DateTime。现在包含比DT_DATE所能存储的精度更高的精度。
DateTime.Now.Date