Sql server 在数据库日期字段中插入Excel日期值

Sql server 在数据库日期字段中插入Excel日期值,sql-server,excel,vb.net,date,parsing,Sql Server,Excel,Vb.net,Date,Parsing,我在excel工作表上有日期值,格式为dd/mm/yyyy。最初,我将这些值捕获为文本(.Range(A2).text) 显然,insert语句失败,因为日期值没有以mm/dd/yyyy格式显示。 我尝试分析日期值并将其分配给日期变量,但Insert语句仍然失败。net显示如下日期:#mm/dd/yyyy#。是哈希标签产生了问题吗? 如果我解析并传递回另一个字符串变量,该值仍然以dd/mm/yyyy格式显示。 如何获取mm/dd/yyyy格式的字符串值?SQL Server中的日期以中性二进制格

我在excel工作表上有日期值,格式为dd/mm/yyyy。最初,我将这些值捕获为文本(.Range(A2).text) 显然,insert语句失败,因为日期值没有以mm/dd/yyyy格式显示。 我尝试分析日期值并将其分配给日期变量,但Insert语句仍然失败。net显示如下日期:#mm/dd/yyyy#。是哈希标签产生了问题吗? 如果我解析并传递回另一个字符串变量,该值仍然以dd/mm/yyyy格式显示。
如何获取mm/dd/yyyy格式的字符串值?

SQL Server中的日期以中性二进制格式存储。在SQL Server中插入行时,最佳做法是使用yyyymmdd,如下所示:

INSERT INTO MyTable(MyDate) VALUES ('20180801')

默认情况下,SQL将根据当前区域设置分析字符串(在上面的values子句中)。这就是为什么上面的ISO格式是首选的,因为它是明确的。

您的代码在哪里?您只需插入一个日期作为日期。为什么要将日期转换为字符串,然后解析回日期?数据库列需要字符串还是日期时间?如果您真的要处理日期和时间,那么它应该是DateTime(或DateTime2)类型的字段。然后,您应该从Excel工作表中解析日期并插入。@Chris Dunaway我的数据库字段是“日期”,因此只有mm/dd/yyyyy,但您必须在VB.Net中使用DateTime变量并将字符串解析为该变量。然后使用参数化查询来更新数据库表的日期列
我将这些值捕获为文本(.Range(A2).text)
——您最好有足够的字符串验证<代码>范围.Text返回显示的格式文本。如果列宽不够,您将得到
#####
。最好使用实际值。最好使用DateTime(或DateTime2)列和参数化查询。@ChrisDunaway您不喜欢日期类型吗?为什么呢?(OP只是谈论日期)日期类型很好,但建议是一样的。使用参数化查询。然后您就不需要担心格式(因为日期列没有格式)。