SQL Server常用的日期和时间函数梳理
今天给大家分享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:表示要处理的日期。
用法:
- -- 在指定日期上加三个月
- select DATEADD(mm,3,'2020-12-30');
- -- 指定日期减一天
- 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返回负值。
用法:
- 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:日期表达式
用法:
- DateName(quarter,GetDate()) as '第几季度'
- DateName(week,GetDate()) as '一年中的第几周'
- DateName(DAYOFYEAR,GetDate()) as '一年中的第几天'
- DateName(year,GetDate()) as '年'
- DateName(month,GetDate()) as '月'
- DateName(day,GetDate()) as '日'
- DateName(hour,GetDate()) as '时'
- DateName(minute,GetDate()) as '分'
- DateName(second,GetDate()) as '秒'
4、DATEPART(deatpart,date)
返回指定日期中指定部分的整数。用法和DATENAME相似,返回值为整数。比如:
- SELECT DATEPART(weekday,'20210209') --返回值为2
- SELECT DateName(weekday,'20210209') --返回值为星期二
5、DAY|MONTH|YEAR 函数
作用:返回指定日期所在 日/月/年的部分。可以用DATEPART替换。
用法:
- SELECT DAY('2021-02-09') --返回 9
- SELECT MONTH('2021-02-09') --返回 2
- SELECT YEAR('2021-02-09') --返回 2021
6、EOMONTH(input[,month_to_add])
作用:该函数是在SQLServer 2012中引入的。EOMONTH函数用来返回指定日期之前或之后某个月的最后一天的日期。
语法结构:=EOMONTH(开始日期,指定起始日期前后的月份)
用法:
- DECLARE @date DATETIME = '2021-02-09';
- SELECT EOMONTH ( @date,7) AS Result; --加七个月的月末日期 2021-09-30
- SELECT EOMONTH ( @date,-2) AS Result; -- 减两个月的月末日期 2020-12-31
7、FROMPARTS
作用:根据输入的年、月、日参数生成一个日期值,并返回。
格式:DATEFROMPARTS(year,month,day)
参数说明:
year:输入年份的整数值
month:输入1~12之间的月份数
day:输入年月所对应的day整数值
注意:如果上面三个参数,任意一个参数输入null,则返回null。
用法:
- SELECT DATEFROMPARTS (2020,2,09) AS [生成日期数据]; --2020-02-09
8、GETDATE()
这个太常见了,就是获取系统当前时间。
- SELECT GETDATE() --返回结果 2021-02-09 08:28:11.307
9、GETUTCDATE()
返回当前的UTC时间。国内使用减八小时。
- SELECT GETUTCDATE() --返回结果 2021-02-09 00:29:21.710
【编辑推荐】
相关文章
- 数据可视的优势:为什么要让数据可视化?
- 性能测试|JMeter连接数据库
- Java 8 使用 Stream 把 List 转换为 map
- EasyRecovery易恢复2023最新版本功能介绍
- HCI数据格式与蓝牙初始化流程
- 【图文教程】Centos单机安装Redis
- R语言中贝叶斯网络(BN)、动态贝叶斯网络、线性模型分析错颌畸形数据|附代码数据
- 大数据NiFi(十二):集群页面组操作
- ROS2机器人编程简述新书推荐-A Concise Introduction to Robot Programming with ROS2
- 深入理解Disruptor
- 文献论文管理工具EndNote 20.4 Mac破解版EndNote 20.4 for Mac英文破
- MySQL数据库 SQL语句详解
- 李航:人工智能需要怎样的计算范式和理论?
- 一个隐藏SQLite数据库长达22年的漏洞
- 2022年我国出生率预测,恐怕。。。
- Jmeter连接不同类型数据库语法
- day5-白雪
- 大数据NiFi(十三):NiFi监控
- Spring Data默认值的错误
- 使用TensorFlow训练图像分类模型的指南