English 中文(简体)
保存时日期日/月颠倒的问题
原标题:
  • 时间:2008-11-11 10:56:09
  •  标签:

我们有一个只影响生产环境的问题。

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

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

可编辑的一列是一个日期,当记录保存时,日期的日/月被颠倒了。

如果您重新保存记录,则03/11/2008变为11/03/2008,日期再次为03/11/2008。

我已经检查过数据库的值,的确被反转了,然而在测试系统上完全相同的代码却没有这样做。

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

这是SQL Server 2000。给我一些点子吧!

谢谢 :)

最佳回答

如果在将用户提供的字符串转换为日期之前将其馈送到DB,则执行ASP页面的线程的Session.LCID负责解释日期的方式。

如果将日期作为字符串提供给SQL Server并进行转换,有必要了解SET DATEFORMATSET LANGUAGE语句。

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

问题回答

这几乎可以确定是您的机器或数据库服务器设置为美国日期格式。请仔细检查系统设置。

或者,快速的谷歌搜索会提供一些选项来操纵数据,让其达到您需要的效果。

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

以下

select name ,alias, dateformat from syslanguages where langid = (select value from master..sysconfigures where comment = default language )

在测试和生产环境中返回相同的结果。

美国英语 英语 mdy

问题是系统无法重新部署以进行更改。我需要确定原因并解决它。 (Wèntí shì xìtǒng wúfǎ chóngxīn bùdé yǐ jìnxíng gēnggǎi. Wǒ xūyào quèdìng yuányīn bìng jiějué tā.)

进入注册表编辑器,然后转到Windows注册表中的以下位置:

HKEY_USERS.DEFAULT\Control Panel\International HKEY_USERS.DEFAULT控制面板国际化

请检查"sShortDate"字段是否正确。

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





相关问题
热门标签