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


    GETDATE()

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

    语法:GETDATE()

    RETURNS DATETIME

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

    datepart

    日期部分的参数

    日期部分 datepart 简写
    YEAR yy, yyyy
    季度 QUARTER qq, q
    MONTH mm, m
    WEEK wk, ww
    星期 WEEKDAY dw, w
    年中的日 DAYOFYEAR dy, y
    DAY dd, d
    小时 HOUR hh
    分钟 MINUTE mi, n
    SECOND ss, s
    毫秒 MILLISECOND ms
    微秒 MICROSECOND mcs
    纳秒 NANOSECOND ns

    DATEPART

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

    语法:DATEPART(datepart,date)

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

    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参数是合法的日期表达式
    RETURNS DATETIME

    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日期参数
    startdateenddate 是合法的日期表达式
    RETURNS INT

    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参数是合法的日期表达式
    RETURNS NVARCHAR

    示例见DATEPART

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


    YEAR

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

    语法:YEAR(date)

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

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

    MONTH

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

    语法:MONTH(date)

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

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

    DAY

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

    语法:DAY(date)

    date参数是合法的日期表达式
    RETURNS INT
    等同于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 规定日期/时间的输出格式
    RETURNS data_type(length)

    可以使用的 style 值:

    Style ID Style 格式
    100 或者 0 mon dd yyyy hh:miAM (或者 PM)
    101 mm/dd/yy
    102 yy.mm.dd
    103 dd/mm/yy
    104 dd.mm.yy
    105 dd-mm-yy
    106 dd mon yy
    107 Mon dd, yy
    108 hh:mm:ss
    109 或者 9 mon dd yyyy hh:mi:ss:mmmAM(或者 PM)
    110 mm-dd-yy
    111 yy/mm/dd
    112 yymmdd
    113 或者 13 dd mon yyyy hh:mm:ss:mmm(24h)
    114 hh:mi:ss:mmm(24h)
    120 或者 20 yyyy-mm-dd hh:mi:ss(24h)
    121 或者 21 yyyy-mm-dd hh:mi:ss.mmm(24h)
    126 yyyy-mm-ddThh:mm:ss.mmm(没有空格)
    130 dd mon yyyy hh:mi:ss:mmmAM
    131 dd/mm/yy hh:mi:ss:mmmAM
    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
    
  • 相关阅读:
    HDU 5977 Garden of Eden(点分治求点对路径颜色数为K)
    HDU 5828 Rikka with Sequence(线段树区间加开根求和)
    TZOJ 1689 Building A New Barn(求平面上有几个其它点求到n个点的曼哈顿距离最小)
    HDU 5734 Acperience(数学推导)
    POJ 1741 Tree(点分治点对<=k)
    HDU 5723 Abandoned country(kruskal+dp树上任意两点距离和)
    HDU 5988 Coding Contest(最小费用最大流变形)
    TZOJ 1693 Silver Cow Party(最短路+思维)
    TZOJ 4602 高桥和低桥(二分或树状数组+二分)
    TZOJ 2099 Sightseeing tour(网络流判混合图欧拉回路)
  • 原文地址:https://www.cnblogs.com/ArtlessBruin/p/7125712.html
Copyright © 2020-2023  润新知