【发布时间】:2017-08-24 07:57:10
【问题描述】:
我们最近搬到了一个新的网络服务器。旧 Web 服务器具有 Windows Server 2008 R2,新 Web 服务器具有 Windows Server 2012 R2。数据库表和数据已移过,所有列保持不变。
问题是在测试网站的登录页面时。它在旧的网络服务器上完美运行,但是在新服务器上我们得到这个错误:
The conversion of a nvarchar data type to a datetime data type resulted in an out-of-range value. The statement has been terminated.
新版SQL Server明显有问题,因为代码是一样的:
Dim strStartTime = DateTime.Now.ToString("dd/MM/yyyy HH:mm")
Dim strConnx As String = "Data Source=Server;Initial Catalog=TEST;User Id=user;Password=password;"
Dim cmdx As New SqlClient.SqlCommand("Insert into [LoginLog]([LogDate], [Consultant], [BU])VALUES (@LogDate, @Consultant, @BU)", New SqlClient.SqlConnection(strConnx))
cmdx.Connection.Open()
cmdx.Parameters.AddWithValue("@LogDate", strStartTime)
cmdx.Parameters.AddWithValue("@Consultant", txtUserName.Text)
cmdx.Parameters.AddWithValue("@BU", Session("BU"))
cmdx.ExecuteScalar()
cmdx.Connection.Close()
我们已经尝试了各种选项(在 SQL 服务器和 Web 服务器上设置日期格式,但是不能解决它 - 请协助,谢谢
【问题讨论】:
-
你试过 DateTime.Now.ToString("yyyy/MM/dd HH:mm")
-
新旧服务器的区域设置不同。最好的选择是切换到 ISO-8601 格式 (yyyymmdd)