当前位置:  开发笔记 > 数据库 > 正文

更改SQL Server中单个数据库的默认日期时间格式

如何解决《更改SQLServer中单个数据库的默认日期时间格式》经验,为你挑选了2个好方法。

我需要在SQL服务器计算机上的单个数据库上将日期格式从US(mm/dd/YYYY)更改为UK(dd/mm/YYYY).

如何才能做到这一点?

我已经看到为整个系统执行此操作的语句,以及为会话执行此操作的语句,但我现在无法更改代码,因为它必须再次通过QA,因此我需要快速修复以更改日期时间格式.

更新

我意识到日期时间与SQL Server如何存储数据无关,但它与解析查询的方式有很大关系.

我正在将XML文件中的原始数据放入数据库中.XML文件中的日期采用英国日期格式.



1> kristof..:

您可以使用SET DATEFORMAT,就像在此示例中一样

declare @dates table (orig varchar(50) ,parsed datetime)

SET DATEFORMAT ydm;

insert into @dates
select '2008-09-01','2008-09-01'

SET DATEFORMAT ymd;
insert into @dates
select '2008-09-01','2008-09-01'

select * from @dates

解析XML数据时,需要在代码中指定dateformat


这会更改SESSION日期格式,而不是DATABASE.

2> Philippe Gro..:

为了避免处理这些非常无聊的问题,我建议您始终使用标准且唯一的SQL/ISO日期格式 YYYY-MM-DD 来解析数据.无论主服务器或查询客户端上的日期参数是什么(本地日期设置可能与主服务器设置不同),您的查询将在国际范围内工作!


Philippe - 我也确信这一点,直到有人向我展示了SQL Server 2008中的一个例子,当时指定为2008-09-01的日期被翻译为2008年1月9日,当时该地区设置为美国.
以独立于SQL服务器中的语言环境设置的格式编写日期的正确方法是"YYYYMMDD"(不是"YYYY-MM-DD"),请参阅[KB173907](http://support.microsoft.com/kb/173907 )(引用:*一个可能的解决方案是使用ISO标准格式将日期时间数据发送到SQL Server,即"YYYYMMDD"(无分隔符).*)
不幸的是,我不是在消耗数据。
推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有