日期函数
日期函数常用来操作DateTime和SmallDateTime类型的数据
(1) DAY(<date_expression>)
DAY函数返回date_expression 中的日期值。
例:select DAY('2004-10-15')返回:15
(2) MONTH(<date_expression>)
MONTH函数返回date_expression中的月份值。
例:select Month('2004-10-15')返回:10
(3) YEAR(<date_expression>)
YEAR函数返回date_expression中的年份值。
例:select Year('2004-10-15')返回:2004
(4) DATEADD(<datepart> <number> <date>)
DATEADD函数返回指定日期date加上指定的额外日期(为datepart类型)间隔number产生的新日期。
例:select dateadd(day,2,'2004-10-15')返回:2004-10-17 00:00:00.000
select dateadd(HOUR,2,'2004-10-15')返回:2004-10-15 02:00:00.000
注:参数datepart 在日期函数中经常被使用,它用来指定构成日期类型数据的各组条件,如年、季、月、日、星期等。其取值如下表:
日期函数中datepart参数的取值 | ||
datepart | 缩写 | 取值 |
year | yy , yyyy | 1753~9999 |
quarter | qq , q | 1~4 |
month | mm , m | 1~12 |
day of year | dy ,y | 1~366 |
day | dd , d | 1 ~31 |
week | wk , ww | 1~ 54 |
weekday | dw | 1~ 7 |
hour | hh | 0 ~23 |
minute | mi ,n | 0 ~59 |
second | ss,s | 0~ 59 |
millisecond | ms | 0 ~999 |
(5) DATEDIFF(<datepart>,<date1>,<date2>)
DATEDIFF函数返回两个指定日期在datepart方面的不同之处,即date2超过date1的差距值,其结果值是一个带有正负号的整数值。
例:select datediff(day,'2004-09-01','2004-09-18')返回:17
注:对不同的datepart,datediff函数所允许的最大差距值不一样,如datepart为second时datediff函数所允许的最大差距为68年;datepart为millisecond是,所允许的最大差距为24天20小时30分23秒647毫秒。
(6) DATENAME(<datepart>,<date>)
DATENAME函数以字符串的形式返回日期的指定部分,此部分由datepart 来指定。
例:select datename(weekday,'2004-10-15')返回:星期五
select datename(YEAR,'2004-10-15')返回:2004
(7) DATEPART(<datepart>,<date>)
DATEPART函数以整数值的形式返回日期的指定部分(类似于DATENAME(<datepart>,<date>)
),此部分由datepart 来指定。
注:DATEPART(day,<date>)等同于 Day(<date>)
DATEPART(Month,<date>)等同于 Month(<date>)
DATEPART(Year,<date>)等同于 Year(<date>)
(8) GETDATE()
GETDATE函数以DATETIME 的缺省格式返回系统当前的日期和时间,它常作为其他函数或命令的参数使用。
例:select GETDATE()返回:2013-04-18 21:42:03.837
select CONVERT(VARCHAR(20),GETDATE(),120) 等同于select CONVERT(VARCHAR,GETDATE(),20) 返回:2013-04-20 09:28:50(注:20表示位数,可用10位,如下:)
select CONVERT(VARCHAR(10),GETDATE(),120) 返回:2013-04-20
Text函数和Image函数
(1)TEXTPTR(<column>)
TEXTPTR函数返回一个指向存储文本的第一个数据库页的指针。
注:其返回值为一个varbinary(16)类型的二进制字符串。如果数据类型为text、ntext或image的列没有赋予初值,则textptr函数返回一个Null指针。
(2)TEXTVALID(<'table.column'>,<text_ pointer>)
TEXTVALID函数用于检查指定的文本指针是否有效。若有效返回1;无效返回0。如果列未赋予初值,则返回Null值。