在我的脚本组件中,我尝试将值分配给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
?
答案 0 :(得分:0)
假设您在任意命名的变量newDate
中有DateTime值,请尝试以下操作:
FooBuffer.DateVar = new DateTime(newDate.Year,
newDate.Month,
newDate.Day,
newDate.Hour,
newDate.Minute,
newDate.Second);
答案 1 :(得分:0)
DateTime.Now包含的精度高于DT_DATE能够存储的精度。试试这个。
DateTime.Now.Date