sql SET DATEFORMAT对日期处理的影响
生活随笔
收集整理的這篇文章主要介紹了
sql SET DATEFORMAT对日期处理的影响
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
--1.
/*--說(shuō)明
?? ?SET DATEFORMAT設(shè)置對(duì)使用CONVERT把字符型日期轉(zhuǎn)換為日期的處理也具有影響
?? ?但不影響明確指定了style的CONVERT處理。
--*/
--示例 ,在下面的示例中,第一個(gè)CONVERT轉(zhuǎn)換未指定style,轉(zhuǎn)換的結(jié)果受SET DATAFORMAT的影響,第二個(gè)CONVERT轉(zhuǎn)換指定了style,轉(zhuǎn)換結(jié)果受style的影響。
--設(shè)置輸入日期順序?yàn)?日/月/年
SET DATEFORMAT DMY
--不指定Style參數(shù)的CONVERT轉(zhuǎn)換將受到SET DATEFORMAT的影響
SELECT CONVERT(datetime,'2-1-2005')
--結(jié)果: 2005-01-02 00:00:00.000
--指定Style參數(shù)的CONVERT轉(zhuǎn)換不受SET DATEFORMAT的影響
SELECT CONVERT(datetime,'2-1-2005',101)
--結(jié)果: 2005-02-01 00:00:00.000
GO
--2.
/*--說(shuō)明
?? ?如果輸入的日期包含了世紀(jì)部分,則對(duì)日期進(jìn)行解釋處理時(shí)
?? ?年份的解釋不受SET DATEFORMAT設(shè)置的影響。
--*/
--示例,在下面的代碼中,同樣的SET DATEFORMAT設(shè)置,輸入日期的世紀(jì)部分與不輸入日期的世紀(jì)部分,解釋的日期結(jié)果不同。
DECLARE @dt datetime
--設(shè)置SET DATEFORMAT為:月日年
SET DATEFORMAT MDY
--輸入的日期中指定世紀(jì)部分
SET @dt='01-2002-03'
SELECT @dt
--結(jié)果: 2002-01-03 00:00:00.000
--輸入的日期中不指定世紀(jì)部分
SET @dt='01-02-03'
SELECT @dt
--結(jié)果: 2003-01-02 00:00:00.000
GO
--3.
/*--說(shuō)明
?? ?如果輸入的日期不包含日期分隔符,那么SQL Server在對(duì)日期進(jìn)行解釋時(shí)
?? ?將忽略SET DATEFORMAT的設(shè)置。
--*/
--示例,在下面的代碼中,不包含日期分隔符的字符日期,在不同的SET DATEFORMAT設(shè)置下,其解釋的結(jié)果是一樣的。
DECLARE @dt datetime
--設(shè)置SET DATEFORMAT為:月日年
SET DATEFORMAT MDY
SET @dt='010203'
SELECT @dt
--結(jié)果: 2001-02-03 00:00:00.000
--設(shè)置SET DATEFORMAT為:日月年
SET DATEFORMAT DMY
SET @dt='010203'
SELECT @dt
--結(jié)果: 2001-02-03 00:00:00.000
--輸入的日期中包含日期分隔符
SET @dt='01-02-03'
SELECT @dt
--結(jié)果: 2003-02-01 00:00:00.000
/*--說(shuō)明
?? ?SET DATEFORMAT設(shè)置對(duì)使用CONVERT把字符型日期轉(zhuǎn)換為日期的處理也具有影響
?? ?但不影響明確指定了style的CONVERT處理。
--*/
--示例 ,在下面的示例中,第一個(gè)CONVERT轉(zhuǎn)換未指定style,轉(zhuǎn)換的結(jié)果受SET DATAFORMAT的影響,第二個(gè)CONVERT轉(zhuǎn)換指定了style,轉(zhuǎn)換結(jié)果受style的影響。
--設(shè)置輸入日期順序?yàn)?日/月/年
SET DATEFORMAT DMY
--不指定Style參數(shù)的CONVERT轉(zhuǎn)換將受到SET DATEFORMAT的影響
SELECT CONVERT(datetime,'2-1-2005')
--結(jié)果: 2005-01-02 00:00:00.000
--指定Style參數(shù)的CONVERT轉(zhuǎn)換不受SET DATEFORMAT的影響
SELECT CONVERT(datetime,'2-1-2005',101)
--結(jié)果: 2005-02-01 00:00:00.000
GO
--2.
/*--說(shuō)明
?? ?如果輸入的日期包含了世紀(jì)部分,則對(duì)日期進(jìn)行解釋處理時(shí)
?? ?年份的解釋不受SET DATEFORMAT設(shè)置的影響。
--*/
--示例,在下面的代碼中,同樣的SET DATEFORMAT設(shè)置,輸入日期的世紀(jì)部分與不輸入日期的世紀(jì)部分,解釋的日期結(jié)果不同。
DECLARE @dt datetime
--設(shè)置SET DATEFORMAT為:月日年
SET DATEFORMAT MDY
--輸入的日期中指定世紀(jì)部分
SET @dt='01-2002-03'
SELECT @dt
--結(jié)果: 2002-01-03 00:00:00.000
--輸入的日期中不指定世紀(jì)部分
SET @dt='01-02-03'
SELECT @dt
--結(jié)果: 2003-01-02 00:00:00.000
GO
--3.
/*--說(shuō)明
?? ?如果輸入的日期不包含日期分隔符,那么SQL Server在對(duì)日期進(jìn)行解釋時(shí)
?? ?將忽略SET DATEFORMAT的設(shè)置。
--*/
--示例,在下面的代碼中,不包含日期分隔符的字符日期,在不同的SET DATEFORMAT設(shè)置下,其解釋的結(jié)果是一樣的。
DECLARE @dt datetime
--設(shè)置SET DATEFORMAT為:月日年
SET DATEFORMAT MDY
SET @dt='010203'
SELECT @dt
--結(jié)果: 2001-02-03 00:00:00.000
--設(shè)置SET DATEFORMAT為:日月年
SET DATEFORMAT DMY
SET @dt='010203'
SELECT @dt
--結(jié)果: 2001-02-03 00:00:00.000
--輸入的日期中包含日期分隔符
SET @dt='01-02-03'
SELECT @dt
--結(jié)果: 2003-02-01 00:00:00.000
轉(zhuǎn)載于:https://www.cnblogs.com/shihao/archive/2012/05/10/2493818.html
總結(jié)
以上是生活随笔為你收集整理的sql SET DATEFORMAT对日期处理的影响的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 一位良心发现的交易员自述:我们是怎么玩弄
- 下一篇: 表格闪退怎么解决_Excel中出现表格打