登录
首页精彩阅读sql中关于时间的函数用法整理
sql中关于时间的函数用法整理
2017-07-13
收藏

sql中关于时间的函数用法整理

GETDATE()

GETDATE()函数从SQL Server 返回当前的时间和日期。

语法:GETDATE()

RETURNSDATETIME

SELECTGETDATE();--// 2017-06-20 15:35:27.980


datepart

日期部分的参数

DATEPART

DATEPART()函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。

语法:DATEPART(datepart,date)

datepart日期参数
date参数是合法的日期表达式
RETURNSINT

SELECT GETDATE();--// 2017-06-19 18:06:19.687
SELECT DATEPART(YEAR,GETDATE());--// 2017
SELECT DATEPART(QUARTER,GETDATE());--// 2
SELECT DATEPART(MONTH,GETDATE());--// 6
SELECT DATEPART(WEEK,GETDATE());--// 25
SELECT DATEPART(WEEKDAY,GETDATE());--// 2
SELECT DATEPART(DAYOFYEAR,GETDATE());--// 170
SELECT DATEPART(DAY,GETDATE());--// 19
SELECT DATEPART(HOUR,GETDATE());--// 18
SELECT DATEPART(MINUTE,GETDATE());--// 6
SELECT DATEPART(SECOND,GETDATE());--// 19
SELECT DATEPART(MILLISECOND,GETDATE());--// 687
SELECT DATEPART(MICROSECOND,GETDATE());--// 687000
SELECT DATEPART(NANOSECOND,GETDATE());--// 687000000


DATEADD

DATEADD()函数在日期中添加或减去指定的时间间隔。
语法:DATEADD(datepart,number,date)

datepart日期参数
number是间隔数,对于未来的时间,此数是正数,对于过去的时间,此数是负数
date参数是合法的日期表达式
RETURNSDATETIME

SELECT GETDATE();--// 2017-06-20 15:35:27.980
SELECT DATEADD(DAY,1,GETDATE());--// 2017-06-21 15:35:27.980
SELECT DATEADD(DAY,-1,GETDATE());--// 2017-06-19 15:35:27.980


DATEDIFF

DATEDIFF()函数返回两个日期之间的时间。
语法:DATEDIFF(datepart,startdate,enddate)

datepart日期参数
startdate和enddate是合法的日期表达式
RETURNSINT

SELECT DATEDIFF(DAY,'2017-05-01','2017-06-01');--// 31
SELECT DATEDIFF(DAY,'2017-06-01','2017-05-01');--// -31


DATENAME

DATENAME()函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。
语法:DATENAME(datepart,date)

datepart日期参数
date参数是合法的日期表达式
RETURNSNVARCHAR

示例见DATEPART。

DATENAME与DATEPART的不同
两者的返回值类型不同,DATENAME()返回的是字符串类型(nvarchar),DATEPART()返回的是整数(int)。


YEAR

YEAR()函数用于返回日期的年份。

语法:YEAR(date)

date参数是合法的日期表达式
RETURNSINT
等同于DATEPART(YEAR,date)

SELECT YEAR('2017-06-20');--// 2017
SELECT DATEPART(YEAR,'2017-06-20');--// 2017


MONTH

MONTH()函数用于返回日期的月份。

语法:MONTH(date)

date参数是合法的日期表达式
RETURNSINT
等同于DATEPART(MONTH,date)

SELECT MONTH('2017-06-20');--// 6
SELECT DATEPART(MONTH,'2017-06-20');--// 6


DAY

DAY()函数用于返回日期的日。

语法:DAY(date)

date参数是合法的日期表达式
RETURNSINT
等同于DATEPART(DAY,date)

SELECT DAY('2017-06-20');--// 20
SELECT DATEPART(DAY,'2017-06-20');--// 20


CONVERT

CONVERT()函数是把日期转换为新数据类型的通用函数。
CONVERT()函数可以用不同的格式显示日期/时间数据。

语法:CONVERT(data_type(length),data_to_be_converted,style)

data_type(length)规定目标数据类型(带有可选的长度)
data_to_be_converted含有需要转换的值
style规定日期/时间的输出格式
RETURNSdata_type(length)

可以使用的style值:

SELECT CONVERT(VARCHAR(100), GETDATE(), 0);--// 06 20 2017  4:27PM
SELECT CONVERT(VARCHAR(100), GETDATE(), 1);--// 06/20/17
SELECT CONVERT(VARCHAR(100), GETDATE(), 2);--// 17.06.20
SELECT CONVERT(VARCHAR(100), GETDATE(), 3);--// 20/06/17
SELECT CONVERT(VARCHAR(100), GETDATE(), 4);--// 20.06.17
SELECT CONVERT(VARCHAR(100), GETDATE(), 5);--// 20-06-17
SELECT CONVERT(VARCHAR(100), GETDATE(), 6);--// 20 06 17
SELECT CONVERT(VARCHAR(100), GETDATE(), 7);--// 06 20, 17
SELECT CONVERT(VARCHAR(100), GETDATE(), 8);--// 16:27:36
SELECT CONVERT(VARCHAR(100), GETDATE(), 9);--// 06 20 2017  4:27:36:970PM
SELECT CONVERT(VARCHAR(100), GETDATE(), 10);--// 06-20-17
SELECT CONVERT(VARCHAR(100), GETDATE(), 11);--// 17/06/20
SELECT CONVERT(VARCHAR(100), GETDATE(), 12);--// 170620
SELECT CONVERT(VARCHAR(100), GETDATE(), 13);--// 20 06 2017 16:27:36:970
SELECT CONVERT(VARCHAR(100), GETDATE(), 14);--// 16:27:36:970
SELECT CONVERT(VARCHAR(100), GETDATE(), 20);--// 2017-06-20 16:27:36
SELECT CONVERT(VARCHAR(100), GETDATE(), 21);--// 2017-06-20 16:27:36.970
SELECT CONVERT(VARCHAR(100), GETDATE(), 22);--// 06/20/17  4:27:36 PM
SELECT CONVERT(VARCHAR(100), GETDATE(), 23);--// 2017-06-20
SELECT CONVERT(VARCHAR(100), GETDATE(), 24);--// 16:27:36
SELECT CONVERT(VARCHAR(100), GETDATE(), 25);--// 2017-06-20 16:27:36.970
SELECT CONVERT(VARCHAR(100), GETDATE(), 100);--// 06 20 2017  4:27PM
SELECT CONVERT(VARCHAR(100), GETDATE(), 101);--// 06/20/2017
SELECT CONVERT(VARCHAR(100), GETDATE(), 102);--// 2017.06.20
SELECT CONVERT(VARCHAR(100), GETDATE(), 103);--// 20/06/2017
SELECT CONVERT(VARCHAR(100), GETDATE(), 104);--// 20.06.2017
SELECT CONVERT(VARCHAR(100), GETDATE(), 105);--// 20-06-2017
SELECT CONVERT(VARCHAR(100), GETDATE(), 106);--// 20 06 2017
SELECT CONVERT(VARCHAR(100), GETDATE(), 107);--// 06 20, 2017
SELECT CONVERT(VARCHAR(100), GETDATE(), 108);--// 16:27:36
SELECT CONVERT(VARCHAR(100), GETDATE(), 109);--// 06 20 2017  4:27:36:970PM
SELECT CONVERT(VARCHAR(100), GETDATE(), 110);--// 06-20-2017
SELECT CONVERT(VARCHAR(100), GETDATE(), 111);--// 2017/06/20
SELECT CONVERT(VARCHAR(100), GETDATE(), 112);--// 20170620
SELECT CONVERT(VARCHAR(100), GETDATE(), 113);--// 20 06 2017 16:27:36:970
SELECT CONVERT(VARCHAR(100), GETDATE(), 114);--// 16:27:36:970
SELECT CONVERT(VARCHAR(100), GETDATE(), 120);--// 2017-06-20 16:27:36
SELECT CONVERT(VARCHAR(100), GETDATE(), 121);--// 2017-06-20 16:27:36.970
SELECT CONVERT(VARCHAR(100), GETDATE(), 126);--// 2017-06-20T16:27:36.970
SELECT CONVERT(VARCHAR(100), GETDATE(), 130);--// 26 ????? 1438  4:27:36:970PM
SELECT CONVERT(VARCHAR(100), GETDATE(), 131);--// 26/09/1438  4:27:36:970PM


SQL

数据分析咨询请扫描二维码

客服在线
立即咨询