保存日期日/月逆转的问题

时间:2008-11-11 10:56:10

标签: sql-server vb6 asp-classic

我们遇到的问题只是影响生产环境。

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

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

其中一个可编辑列是日期,保存记录的日期/月日期正在反转。

03/11/2008成为2008年3月11日,如果您要重新保存记录,那么日期将是2008年11月11日。

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

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

这是SQL Server 2000.给我一些想法!

谢谢:)

5 个答案:

答案 0 :(得分:1)

这几乎可以肯定与您的计算机或数据库服务器设置为美国日期格式有关。仔细检查两个系统设置。

或者,快速Google search将提供一些操作数据的选项,以便它可以满足您的需求。

答案 1 :(得分:1)

如果您将用户提供的字符串转换为之前的日期,则将其提供给数据库,然后执行ASP页面的线程的Session.LCID负责解释日期的方式。

如果您将日期作为字符串提供给SQL Server并让转换发生在那里,那么查看SET DATEFORMATSET LANGUAGE语句将非常有用。

所以这是我的想法:要么停止使用(鼓励用户使用)模棱两可的日期格式,这个问题就会消失,或者确保处理链的所有链接都清楚地了解期望的格式。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

以下

选择名称,别名,dateformat    来自syslanguages       其中langid =       (从master..sysconfigures中选择值          其中comment ='默认语言')

在test and live

上返回相同的结果

us_english English mdy

问题是系统无法重新部署以进行更改。我需要找出原因并加以解决。

答案 4 :(得分:0)

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

HKEY_USERS.DEFAULT \ Control Panel \ International \

检查以确保“sShortDate”字段正确。

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