Sql server 保存时日期-日期/月份反转问题

Sql server 保存时日期-日期/月份反转问题,sql-server,vb6,asp-classic,Sql Server,Vb6,Asp Classic,我们的问题只影响生产环境 我们有一个VB6/ASP网站,允许手动编辑数据库表中的数据 它看起来很像一个可编辑的数据网格 其中一个可编辑列是日期,记录保存时,日期/月份将被颠倒 2008年11月3日变为2008年3月11日,如果要重新保存该记录,则日期再次为2008年11月3日 我已经检查了DB值,它确实被反转了,但是测试系统上相同的代码没有这样做 所以我很有信心我正在寻找一个环境变化。测试系统的数据库和站点托管在本地,在实时设置中,我们有一个单独的网站服务器和数据库服务器。你建议我从哪里开始寻找

我们的问题只影响生产环境

我们有一个VB6/ASP网站,允许手动编辑数据库表中的数据

它看起来很像一个可编辑的数据网格

其中一个可编辑列是日期,记录保存时,日期/月份将被颠倒

2008年11月3日变为2008年3月11日,如果要重新保存该记录,则日期再次为2008年11月3日

我已经检查了DB值,它确实被反转了,但是测试系统上相同的代码没有这样做

所以我很有信心我正在寻找一个环境变化。测试系统的数据库和站点托管在本地,在实时设置中,我们有一个单独的网站服务器和数据库服务器。你建议我从哪里开始寻找这个问题。我检查了服务器上的区域设置,它们设置为英国,操作系统日期格式正确

这是SQL Server 2000。给我一些想法吧


谢谢:

操作系统的区域设置如何?

这几乎肯定与您的机器或数据库服务器设置为US date格式有关。再次检查两个系统设置


或者,quick会提供一些操作数据的选项,以便它可以执行您需要的操作。

如果在将用户提供的字符串提供给DB之前将其转换为日期,则执行ASP页面的线程负责解释日期

如果将日期作为字符串提供给SQL Server,并让转换在那里进行,那么查看和语句将非常有用

因此,我的想法是:要么停止使用鼓励用户使用含糊不清的日期格式,这个问题就会消失,要么确保处理链的所有链接都清楚地了解所需的格式

选择名称、别名、日期格式 来自系统语言 兰吉德在哪里= 从master..sysconfigures中选择值 其中comment='默认语言'

在测试和live上返回相同的结果

美英mdy


问题是系统无法重新部署以进行更改。我需要确定原因并修复它。

进入regedit并转到Windows注册表中的以下位置:

HKEY_用户。默认值\控制面板\国际\

检查以确保sShortDate字段正确


此位置多次存储的短日期格式与Windows控制面板/区域选项中存储的短日期格式不同。区域选项中的短日期适用于您作为登录Windows的用户。HKEY_USERS中的sShortDate字段是Windows服务使用的短日期格式。

Ok我检查了Web服务器和DB服务器上的每个用户,结果都是正确的。我确实找到了一种复制结果的方法。在开发服务器上,我将sa改为英式英语,日期颠倒了,所以我换回了英语。然而,Live也设置为English。最后,我们在查询前对dateformat进行了旧的修改