在SQL Server

时间:2016-10-25 23:22:37

标签: sql sql-server tsql date datetime

在书中,Ben-Gan,Itzik。 T-SQL Fundamentals,有以下声明。

  

格式'YYYY-MM-DD'和'YYYY-MM-DD hh:mm ...'依赖于语言   当转换为DATETIME或SMALLDATETIME并且语言中立时   转换为DATE,DATETIME2和DATETIMEOFFSET。

据我所知,在指定日期和时间文字时,sql server可以根据语言设置不同地解释相同的文字。

但是,我无法清楚地理解上述陈述。它究竟意味着什么?

1 个答案:

答案 0 :(得分:1)

From this answer:SQL Server 2008 datetime2和date中的新数据类型不依赖于SET LANGUAGE或SET DATEFORMAT。

某些欧洲语言区域有' YYYY-DD-MM'但是datetime2和date始终使用' YYYY-MM-DD'。请参阅connect article

E.g:

Set dateformat dmy;
Select cast ('2012-02-01' as datetime) [DateTime], cast ('2012-02-01' as datetime2) [DateTime2],
cast ('2012-02-01' as date) [Date];

结果:

DateTime                DateTime2                   Date
2012-01-02 00:00:00.000 2012-02-01 00:00:00.0000000 2012-02-01