如何将默认systemdate从ymd更改为dmy

问题描述 投票:4回答:3

有人可以帮我将默认的systemdate从ymd更改为dmy吗?这些必须始终是默认格式!!怎么样?

sql sql-server tsql sql-server-2008
3个回答
6
投票

SET DATEFORMAT

设置解释日期,smalldatetime,datetime,datetime2和datetimeoffset字符串的月,日和年日期部分的顺序。

[注意:这通常不是解决日期解释问题的方法。如果可以避免日期时间,则不应将日期时间存储为字符串(请改用日期时间或日期列)。如果您必须以字符串形式存储,请使用基本上为YYYYMMDD形式的ISO 8601格式]

来自MSDN的示例:

-- Set date format to day/month/year.
SET DATEFORMAT dmy;
GO
DECLARE @datevar datetime2 = '31/12/2008 09:01:01.1234567';
SELECT @datevar;
GO
-- Result: 2008-12-31 09:01:01.123
SET DATEFORMAT dmy;
GO
DECLARE @datevar datetime2 = '12/31/2008 09:01:01.1234567';
SELECT @datevar;
GO
-- Result: Msg 241: Conversion failed when converting date and/or time -- from character string.
GO

3
投票

可以通过更改默认语言来设置当前登录的默认日期格式。

月/日/年:

ALTER LOGIN [MyUser] WITH DEFAULT_LANGUAGE = us_english
select CAST('01-06-2011' as datetime)
-- 2011-01-06 00:00:00.000

或者日/月/年:

ALTER LOGIN [MyUser] WITH DEFAULT_LANGUAGE = British
select CAST('01-06-2011' as datetime)
-- 2011-06-01 00:00:00.000

您可以选择sys.syslanguages中列出的任何语言。在您再次登录之前,更改不会生效。


0
投票
SET DATEFORMAT DMY;

GO

RECONFIGURE

GO

DBCC USEROPTIONS

SELECT GETDATE()
© www.soinside.com 2019 - 2024. All rights reserved.