无法使用SQL Server日期格式保存其他格式的日期

时间:2018-11-16 00:07:19

标签: sql-server vb.net

我的服务器具有MM / dd / yyyy格式。我正在保存用户的调查,其中包括他们提交调查的日期。但是某些用户遇到了一个错误,即将nvarchar数据类型转换为日期时间数据类型是超出范围的值。这是我使用datetime.now保存调查日期的时间。当我检查他们的计算机时,它们具有不同的日期格式。因此,我尝试将其更改为服务器日期格式,并且可以使用,但是这些用户不想更改其日期格式,因此有什么可能的解决方案,而无需更改计算机中的日期格式。

            .AddWithValue("@SurveyDate", System.Data.SqlDbType.DateTime).Value = DateTime.NOw
            .AddWithValue("@EDate", System.Data.SqlDbType.DateTime).Value = DateTime.Now

1 个答案:

答案 0 :(得分:1)

您的代码应为:

 Dim dt As Date = DateTime.Today

.Add("@SurveyDate", System.Data.SqlDbType.DateTime).Value = dt
.Add("@EDate", System.Data.SqlDbType.DateTime).Value = dt

请注意,我已经更正了您对String而不是Date的使用,并且还更正了您对AddWithValue而不是Add的使用。如果您要使用AddWithValue,请正确使用它,即指定值:

.AddWithValue("@SurveyDate", dt)
.AddWithValue("@EDate", dt)

使用AddWithValue的想法是您提供值,然后从中推断出数据类型。这样做的问题是可能推断出错误的数据类型。例如,SQL Server的日期中有datedatetimedatetime2等。在这种情况下可以推断出什么?最好不要假设或关心,而只是调用Add并指定所需的数据类型。