28.1 GETDATE()函数

GETDATE()函数用于返回当前数据库系统的日期和时间,返回值的类型为datetime。

返回值舍入到最近的秒小数部分,精度为.333秒数据库十七偏移量不包含在内。

SELECT GETDATE();

 

28.2 GETUTCDATE()函数

GETUTCDATE()函数返回当前UTC(世界标准时间)日期值。

SELECT GETUTCDATE();

 

28.3 YEAR()函数

YEAR()函数以int数据类型的格式返回特定日期的年度信息,其语法格式为YEAR(date 数据)。

SELECT YEAR(GETDATE());

注意:函数之间只要符合语法规范是可以嵌套的。

 

28.4 MONTH()函数

MONTH()函数以int数据类型的格式返回特定日期的月份信息。其语法格式为MONTH(date 数据)。

SELECT MONTH(GETDATE());

 

28.5 DAY()函数

DAY()函数以int数据类型的格式返回特定日期的天数信息。其语法格式为DAY(date 数据)。

SELECT DAY(GETDATE());

 

28.6 DATEPART(dp,d)

DATEPART(dp,d)函数返回指定日期中相应的部分的整数值。

语法:

DATEPART(datepart,date 数据)

datepart取值:

年度YEAR、YYYYY、YY

SELECT DATEPART(YEAR,GETDATE());

--2019

月份MONTH、MM、M

SELECT DATEPART(MONTH,GETDATE());

--2

日期DAY、DD、D

SELECT DATEPART(DAY,GETDATE());

--14

周WEEK、WK、WW

SELECT DATEPART(WEEK,GETDATE());

--7(一年中的第7周)

每周星期几WEEKDAY、DW

SELECT DATEPART(WEEKDAY,GETDATE());

--5(是从星期日开始计算往后的第几天)

季度QUARTER、QQ、Q

SELECT DATEPART(QUARTER,GETDATE());

--1

一年中第几天DAYOFYEAR、DY、Y

SELECT DATEPART(HOUR,GETDATE());

--45

小时HOUR、HH

SELECT DATEPART(HOUR,GETDATE());

--23(晚上11点)

分钟MINUTE、MI、N

SELECT DATEPART(MINUTE,GETDATE());

--11

秒SECOND、SS

SELECT DATEPART(SECOND,GETDATE())

--45

毫秒MILISECOND、MS

SELECT DATEPART(MILISECOND,GETDATE());

--120

 

28.7 DATENAME(dp,d)函数

DATENAME(dp,d)函数返回指定日期中相应的部分的字符串,用法与DATEPART类似。

SELECT DATENAME(MONTH,GETDATE());

--02
SELECT DATENAME(WEEKDAY,GETDATE());

--星期四
SELECT DATENAME(DAY,GETDATE());

--14
SELECT DATENAME(WEEK,GETDATE());

--7(一年中的第7周)
SELECT DATENAME(DAYOFYEAR,GETDATE());

--45(一年中的第45天)

 

28.8 DATEADD(dp,num,d)函数

DATEADD(dp,num,d)函数用于执行日期的加运算,返回指定日期值加上一个时间段后的新日期。dp指定日期中进行加法运算的部分值,

例如:YEARMONTH,DAY,HOUR,MINUTE,SECOND,MILLISECOND等,num指定与dp相加的值,如果该值为非整数值,将舍弃该值得小数部分,d为执行加法运算的日期。

DATEADD语法:

DATEADD(datepart,number,date 数据);

num:用于与datepart相加的值。如果指定了非整数值,则将舍弃该值得小数部分。

date 数据:一个用于解析为time、date、smalldatetime、datetime、
datetime2或datetimeoffset值的表达式、列表达式、用户定义的变量或字符串文字。

datepart:时间部分。
SELECT DATEADD(YEAR,2,GETDATE());
--年份往后增加2年

SELECT DATEADD(MONTH,2,GETDATE());
--月份往后增加2个月

SELECT DATEADD(DAY,2,GETDATE());
--日期往后增加2天

SELECT DATEADD(YEAR,-2,GETDATE());
--年份往前减少2年

SELECT DATEADD(MONTH,-2.GETDATE());
--月份往前减少2个月

SELECT DATEADD(DAY,-2,GETDATE());
--日期往前减少2天

 

28.9 DATEDIFF(dp,startdate,enddate)函数

datediff函数将两个特定的日期数据相减,得到的结果可以按照datepart指定的格式返回特定的数据。

语法:

DATEDIFF(datepart,startdate,enddate);

执行中将使用enddate减去startdate的值,如果startdate晚于enddate将返回负值。执行结果如果超出整数范围将提示错误。

SELECT DATEDIFF(YEAR,'2018-5-19','2019-2-14');
--1

SELECT DATEDIFF(YEAR,'2020-5-19','2019-2-14');
--  -1

SELECT DATEDIFF(MONTH,'2018-2-14','2019-8-11');
-- 18

SELECT DATEDIFF(MONTH,'2020-2-14','2019-8-11');
--  -6