注册/登录

SQL Server常用的日期和时间函数梳理

数据库 SQL Server
今天给大家分享SQLServer常用的日期和时间函数相关的知识,希望对大家能有所帮助!

今天给大家分享SQLServer常用的日期和时间函数相关的知识,希望对大家能有所帮助!

1、DATEADD(datepart,number,date)

作用:返回给指定日期加一个时间间隔后新的datetime值

参数说明:

datepart:指定为日期的哪部分增加数值。

常用的值有:年(yy/yyyy),季度(qq/q),月份(mm/m),日(day/dd/d),周(wk/ww),小时(hh),分钟(mi,n),秒(ss/s)。

number:指定要增加的数值。如果是非整数将会舍去小数部分。负数表示减去相应的时间间隔。

date:表示要处理的日期。

  1. -- 在指定日期上加三个月 
  2. select DATEADD(mm,3,'2020-12-30'); 
  3. -- 指定日期减一天 
  4. select DATEADD(day,-1,'2020-12-30'); 

2、DATEDIFF(datepart,startdate,enddate)

作用:指定两个时间相差的时间数。比如天、小时、分钟等等。

参数说明:

datepart:指定返回的日期时间维度(天、小时、分钟)。

常用的值有:年(yy/yyyy),季度(qq/q),月份(mm/m),日(day/dd/d),周(wk/ww),小时(hh),分钟(mi,n),秒(ss/s)。

startdate:可以理解被减数。

enddate:可以理解减数。如果startdate大于enddate返回负值。

  1. SELECT DATEDIFF(day,'2021-02-05','2021-02-09'AS DiffDate --返回 4天 

3、DATENAME(deatpart,date)

作用:返回指定日期的指定部分的字符串。

参数说明:

datepart:指定返回的日期时间维度(天、小时、分钟)。

常用的值有:年(yy/yyyy),季度(qq/q),月份(mm/m),日(day/dd/d),周(wk/ww),小时(hh),分钟(mi,n),秒(ss/s)。

date:日期表达式

  1. DateName(quarter,GetDate()) as '第几季度' 
  2. DateName(week,GetDate()) as '一年中的第几周' 
  3. DateName(DAYOFYEAR,GetDate()) as '一年中的第几天' 
  4. DateName(year,GetDate()) as '年' 
  5. DateName(month,GetDate()) as '月' 
  6. DateName(day,GetDate()) as '日' 
  7. DateName(hour,GetDate()) as '时' 
  8. DateName(minute,GetDate()) as '分' 
  9. DateName(second,GetDate()) as '秒' 

4、DATEPART(deatpart,date)

返回指定日期中指定部分的整数。用法和DATENAME相似,返回值为整数。比如:

  1. SELECT DATEPART(weekday,'20210209'--返回值为2 
  2. SELECT DateName(weekday,'20210209'--返回值为星期二 

5、DAY|MONTH|YEAR 函数

作用:返回指定日期所在 日/月/年的部分。可以用DATEPART替换。

  1. SELECT DAY('2021-02-09'--返回 9 
  2. SELECT MONTH('2021-02-09'--返回 2 
  3. SELECT YEAR('2021-02-09'--返回 2021 

6、EOMONTH(input[,month_to_add])

作用:该函数是在SQLServer 2012中引入的。EOMONTH函数用来返回指定日期之前或之后某个月的最后一天的日期。

语法结构:=EOMONTH(开始日期,指定起始日期前后的月份)

  1. DECLARE @date DATETIME = '2021-02-09'
  2. SELECT EOMONTH ( @date,7) AS Result; --加七个月的月末日期 2021-09-30 
  3. SELECT EOMONTH ( @date,-2) AS Result; -- 减两个月的月末日期 2020-12-31 

7、FROMPARTS

作用:根据输入的年、月、日参数生成一个日期值,并返回。

格式:DATEFROMPARTS(year,month,day)

参数说明:

year:输入年份的整数值

month:输入1~12之间的月份数

day:输入年月所对应的day整数值

注意:如果上面三个参数,任意一个参数输入null,则返回null。

  1. SELECT DATEFROMPARTS (2020,2,09) AS [生成日期数据]; --2020-02-09 

8、GETDATE()

这个太常见了,就是获取系统当前时间。

  1. SELECT GETDATE() --返回结果 2021-02-09 08:28:11.307 

9、GETUTCDATE()

返回当前的UTC时间。国内使用减八小时。

  1. SELECT GETUTCDATE() --返回结果 2021-02-09 00:29:21.710 

【编辑推荐】

  • 如何为应用程序选择合适的数据库
  • 2020年 软考中级 数据库系统工程师 视频教程 全套(基础知识+真题讲解+案例专题)
  • 2021年软考数据库系统工程师-上午历年真题解析视频课程
  • C#SQL Server数据库技术视频课程
  • 98%的DBA不知道的数据库内存知识点
  • 责任编辑:华轩 今日头条
    点赞
    收藏