【发布时间】:2010-03-05 05:31:28
【问题描述】:
过去两天我遇到了关于 SQL 中日期格式的问题。
我在 ASP.NET 中开发了一个应用程序并将其部署在生产服务器中。我将数据持久化到一个表中,该表有一个带有日期字段的 xml 列,如
---某个日期时间---
当我从本地主机运行应用程序(或在我的计算机中部署应用程序)时,日期以 24 小时时间格式保存
例如:15/08/2009 14:30:00
当我运行部署在生产服务器中的同一个应用程序时,数据以 12 小时时间格式保存
例如:2009 年 8 月 15 日下午 2:30:00
注意:我在持久化数据时没有在应用程序代码中指定任何格式。
以下是我尝试过的:
检查了我的电脑和网络服务器的区域设置和格式是否相同(h:mm:ss tt)
检查了我的计算机和网络服务器的文化信息,它是相同的。 (zh-CN)
在我计算机的 IIS 属性中,我通过编辑配置设置了相同的网络服务器文化。
当从我的计算机和生产网络服务器持久保存时,同一表的日期列中的日期以一致的格式(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