SQL截取时间函数
DATEPART
返回代表指定⽇期的指定⽇期部分的整数。
语法
DATEPART ( datepart , date )
参数
datepart
是指定应返回的⽇期部分的参数。下表列出了 Microsoft® SQL Server™ 识别的⽇期部分和缩写。
⽇期部分缩写
year yy, yyyy
quarter qq, q
month mm, m
dayofyear dy, y
day dd, d
week wk, ww
weekday dw
Hour hh
minute mi, n
second ss, s
millisecond ms
week (wk, ww) ⽇期部分反映对 SET DATEFIRST 作的更改。任何⼀年的 1 ⽉ 1 ⽇定义了 week ⽇期部分的开始数字,例如:DATEPART(wk, 'Jan 1, xxxx') = 1,此处 xxxx 代表任⼀年。
weekday (dw) ⽇期部分返回对应于星期中的某天的数,例如:Sunday = 1、Saturday = 7。weekday ⽇期部分产⽣的数取决于 SET DATEFIRST 设定的值,此命令设定星期中的第⼀天。
date
是返回 datetime 或 smalldatetime 值或⽇期格式字符串的表达式。对 1753 年 1 ⽉ 1 ⽇之后的⽇期⽤datetime数据类型。更早的⽇期存储为字符数据。当输⼊ datetime 值时,始终将其放⼊引号中。因为 smalldatetime 只精确到分钟,所以当⽤ smalldatetime 值时,秒和毫秒总是0。
如果只指定年份的最后两位数字,则⼩于或等于"两位数年份截⽌期"配置选项的值的最后两位数字的数字所在世纪与截⽌年所在世纪相同。⼤于该选项的值的最后两位数字的数字所在世纪为截⽌年所在世纪的前⼀个世纪。例如,如果 two digit year cutoff 为 2049 (默认),则 49被解释为 2049,2050 被解释为 1950。为避免模糊,请使⽤四位数的年份。
有关时间值指定的更多信息,请参见。有关⽇期指定的更多信息,请参见。
返回类型
int
注释
DAY、MONTH、和 YEAR 函数分别是 DATEPART(dd, date)、DATEPART(mm, date)、和 DATEPART(yy, date) 的同义词。
⽰例
GETDATE 函数返回当前⽇期;然⽽,⽐较时并不总是需要完整的⽇期信息(通常只是对⽇期的⼀部分进⾏⽐较)。此⽰例显⽰ GETDATE 及 DATEPART 的输出。
SELECT GETDATE() AS 'Current Date'
GO
下⾯是结果集:
Current Date
---------------------------
Feb 18 1998 11:46PM
SELECT DATEPART(month, GETDATE()) AS 'Month Number'
GO
下⾯是结果集:
Month Number
------------
2
此⽰例假设⽇期是 5 ⽉ 29 ⽇。
SELECT DATEPART(month, GETDATE())
GO
下⾯是结果集:
-----------
5
(1 row(s) affected)
在此⽰例中,以数字表⽰⽇期。注意:SQL Server 将 0 解释为 01/01/1900。
SELECT DATEPART(m, 0), DATEPART(d, 0), DATEPART(yy, 0)
下⾯是结果集:
----- ------ ------
1    1      1900
//////////////////////////////////////////////////////////////////////////////
⽇期和时间函数
这些标量函数对⽇期和时间输⼊值执⾏操作,并返回⼀个字符串、数字值或⽇期和时间值。下表列出⽇期和时间函数以及它们的确定性属性。有关函数确定性的更多信息,请参见。
函数确定性
具有确定性
具有确定性
不具有确定性
除了⽤作 DATEPART (dw, date) 外都具有确定性。dw
是⼯作⽇的⽇期部分,取决于由设置每周第⼀天的 SET
DATEFIRST 所设置的值。
具有确定性
不具有确定性
不具有确定性
具有确定性
具有确定性
//////////////////////////////////////////////////////////////////////////
DATEADD
在向指定⽇期加上⼀段时间的基础上,返回新的 datetime 值。
语法
DATEADD ( datepart , number, date )
参数
datepart
是规定应向⽇期的哪⼀部分返回新值的参数。下表列出了 Microsoft® SQL Server™ 识别的⽇期部分和缩写。
⽇期部分缩写
Year yy, yyyy
quarter qq, q
Month mm, m
dayofyear dy, y
Day dd, d
Week wk, ww
Hour hh
minute mi, n
second ss, s
millisecond ms
number
是⽤来增加datepart的值。如果指定⼀个不是整数的值,则将废弃此值的⼩数部分。例如,如果为datepart指定day,为number 指
定 1.75,则date 将增加 1。
date
是返回 datetime 或 smalldatetime 值或⽇期格式字符串的表达式。有关指定⽇期的更多信息,请参见。
如果您只指定年份的最后两位数字,则⼩于或等于"两位数年份截⽌期"配置选项的值的最后两位数字的数字所在世纪与截⽌年所在世纪相同。⼤于该选项的值的最后两位数字的数字所在世纪为截⽌年所在世纪的前⼀个世纪。例如,如果 two digit year cutoff 为 2049(默认),则 49 被解释为 2049,2050 被解释为 1950。为避免模糊,请使⽤四位数的年份。
返回类型
返回 datetime,但如果date参数是 smalldatetime,返回 smalldatetime。
⽰例
此⽰例打印出 pubs 数据库中标题的时间结构的列表。此时间结构表⽰当前发布⽇期加上 21 天。
USE pubs
GO
SELECT DATEADD(day, 21, pubdate) AS timeframe
FROM titles
GO
下⾯是结果集:
timeframe
---------------------------
Jul 3 1991 12:00AM
Jun 30 1991 12:00AM
Jul 21 1991 12:00AM
Jul 13 1991 12:00AM
Jun 30 1991 12:00AM
Jul 9 1991 12:00AM
Mar 14 1997  5:09PM
Jul 21 1991 12:00AM
Jul 3 1994 12:00AM
Mar 14 1997  5:09PM
Nov 11 1991 12:00AM
Jul 6 1991 12:00AM
Oct 26 1991 12:00AM
Jul 3 1991 12:00AM
Jul 3 1991 12:00AM
字符串截取数字部分Nov 11 1991 12:00AM
Jul 3 1991 12:00AM          Jul 3 1991 12:00AM

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。