在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分配之前?

在SSIS脚本组件中分配一个日期变量

假设在任意命名的变量newDate中有一个DateTime值,请尝试以下操作:

FooBuffer.DateVar = new DateTime(newDate.Year,
                                 newDate.Month,
                                 newDate.Day,
                                 newDate.Hour,
                                 newDate.Minute,
                                 newDate.Second);

DateTime。现在包含比DT_DATE所能存储的精度更高的精度。

DateTime.Now.Date