【发布时间】:2015-08-25 13:58:54
【问题描述】:
我在c# 中的DataTable 中插入 Excel 表记录,并将此 DataTable 传递给 SQL stored procedure。在我的 c# 代码中,我对 Excel 表的 empty 数据单元格进行了某些检查以避免异常。但似乎我在为我的 SQL Date 字段提供 default 值时遗漏了一些东西。
string InvoiceDate = (row.Cells[3].Text == " ") ? "0/00/0000 00:00:00 AM" : (row.Cells[3].Text);
我收到以下错误:
字符串未被识别为有效的日期时间。无法存储 发票日期列中的 。预期类型是 日期时间。
已编辑 - SQL字段声明[InvoiceDate]
[InvoiceDate] [date] NOT NULL
请不要建议插入null,因为我无法在此列中插入null。
【问题讨论】:
-
如果您的数据库列是日期时间,为什么要传递字符串?
-
尝试使用
DateTime.Min- 我认为这是 1/Jan/1900 -
@GiorgiNakeuri 当我
debug我的代码在日期列中包含5/31/2015的 Excel 表时,我在我的InvoiceDate变量中得到5/31/2015 12:00:00 AM
标签: sql-server datetime type-conversion