【问题标题】:Date formats mismatch between different servers (XML column)不同服务器之间的日期格式不匹配(XML 列)
【发布时间】:2010-03-05 05:31:28
【问题描述】:

过去两天我遇到了关于 SQL 中日期格式的问题。

我在 ASP.NET 中开发了一个应用程序并将其部署在生产服务器中。我将数据持久化到一个表中,该表有一个带有日期字段的 xml 列,如

---某个日期时间---

当我从本地主机运行应用程序(或在我的计算机中部署应用程序)时,日期以 24 小时时间格式保存

例如:15/08/2009 14:30:00

当我运行部署在生产服务器中的同一个应用程序时,数据以 12 小时时间格式保存

例如:2009 年 8 月 15 日下午 2:30:00

注意:我在持久化数据时没有在应用程序代码中指定任何格式。

以下是我尝试过的:

  1. 检查了我的电脑和网络服务器的区域设置和格式是否相同(h:mm:ss tt)

  2. 检查了我的计算机和网络服务器的文化信息,它是相同的。 (zh-CN)

  3. 在我计算机的 IIS 属性中,我通过编辑配置设置了相同的网络服务器文化。

  4. 当从我的计算机和生产网络服务器持久保存时,同一表的日期列中的日期以一致的格式(24 小时格式)存储。

例如:2009-10-28 14:00:49.000

日期时间仍然以不同的格式存储。我无法弄清楚应用程序在持久化时从何处采用格式。


我终于找到了这个问题的根本原因。我想发布它以防万一有人遇到同样的问题,这可能会对他们有所帮助。

进入注册表。选择控制面板 -> 国际 -> sTimeFormat 并验证给定的时间格式。

在我的计算机中,时间格式是 HH:mm:ss,而在服务器中是 hh:mm:ss tt,这是主要问题。我已将服务器中的格式更改为 HH:mm:ss 并且效果很好:)

详情请参考this link

【问题讨论】:

    标签: sql-server xml datetime


    【解决方案1】:

    尝试将以下内容添加到您网站的 web.config 中:

    <system.web>
    <globalization culture="en-ZA" uiCulture="en-ZA"/>
    </system.web>
    

    将“en-ZA”替换为您需要的特定文化。这将确保不会使用浏览器的文化设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-17
      • 1970-01-01
      • 1970-01-01
      • 2021-09-13
      • 1970-01-01
      相关资源
      最近更新 更多