请注意,我绝不是编码员,我只是想协助从 SQL Server 2008 R2 和 2008 迁移到 SQL Server 2022 和 2019。
当我执行以下 T-SQL 查询时:
select convert(datetime,'08/15/2022',103)
我收到一个错误:
将 varchar 数据类型转换为 datetime 数据类型导致值超出范围
当我将其更改为:
select convert(datetime,'08/15/2022',101)
...有用。
我知道英国英语不使用 mm/dd/yyyy,这是我正在做的一项测试,以查看 SQL Server 使用的是哪种默认语言,因此我可以识别网站中的问题。因此,我希望将 SQL 中的默认语言设置为英国英语而不是美国英语。
我确实使用了备份/恢复迁移。SQL Server 2019 对 SQL 查询的解释似乎与 SQL Server 2008 略有不同。我无法访问编码网页,因此无法对 ASP 编码进行任何更改。
有什么方法可以运行一些 T-SQL 查询来改变 SQL Server 2019 查看日期的方式并强制它使用英国英语?
服务器区域设置已正确设置为南非英语(与英国英语相同),因此我不确定在哪里可以进行任何更改,以便我们获得正确的日期和时间格式。
如果我更改相关用户的默认语言,这会实现我的目标吗?我是否需要重新启动 SQL Server 才能实施更改?我指的用户是在SQL中设置的连接数据库运行查询的用户,在ODBC驱动设置中设置。
这与我们正在运行的网站有关,我无法更改其编码,因为我对 ASP 一无所知。
这是导致问题的代码:
sSQL = "UPDATE VR_UPLOAD SET clnt_status = 'O', clnt_date_send = '" &
Left(strDate, 2) & "-" & Mid(strDate, 5, 2) & "-" & Right(strDate, 4) & " " &
Left(strTime, 2) & ":" & Mid(strTime, 3, 2) & ":" & Right(strTime, 2) & ".000',
CLNT_OUTFILE = '" & strFileName &
"' where clnt_validated = '' and clnt_status = 'i'"
oConn.Execute(sSQL)