hello,大家后!我们在实际工作中编写SQL脚本难免会使用各种日期函数实现时间维度的分析,今天给大家分享些我工作中写SQL 脚本常用到的一些日期函数使用场景,个人感觉基本上常用的都在这了,也欢迎大家留言补充。
1.获取当前系统的时间
--返回当前系统时间select GETDATE()返回结果:2021-05-16 22:42:06.383
2.对日期进行格式化
select convert(varchar(10),getdate(),120)返回结果:2021-05-16
3.对日期进行截取年月日
select YEAR(GETDATE())select MONTH(GETDATE())select DAY(GETDATE())也可以使用DATEPART/DATENAME函数来实现这个需求,且这个函数的应用范围更广--datename函数select datename(weekday,getdate())select datename(quarter,getdate())select datename(year,getdate())
4.DATEDIFF函数
--datediff返回两个时间的差,第1个参数是datepart,是计算两个日期间的差参数,可以是DAY,MONTH,YEAR,--第2个参数是start date,第3个参数是end dateselect datediff(day,convert(varchar(10),getdate(),120),'2021-5-20')
5.DATEADD函数
--返回指定间隔期间后的日期,例如当前系统时间下返回1个月后的今天的时间select dateadd(month,1,getdate())
6.返回当前日期是本年第几天
--返回当前日期是本年第几天select DATEPART(dayofyear,getdate())
7.返回当前日期是本年第几周
select DATEPART(week,getdate())
8.返回当前日期月份的最后一天
select EOMONTH(getdate())
9.返回某日期的星期
select datename (weekday,GETDATE())
10.上月的第1天
SELECT CONVERT(CHAR(10),DATEADD(month,-1,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),111)
11.上月的最后1天
SELECT CONVERT(CHAR(10),DATEADD(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()),0)),111)+' 23:59:59'
12.本月的第1天
SELECT CONVERT(CHAR(10),DATEADD(dd,-DAY(GETDATE())+1,GETDATE()),111)
文章转载自PowerBI Home,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




