在日常工作中经常用到的SQL日期函数总结

当月月至今:

select trunc(sysdate(-1), 'MM')   --当月的1号
select sysdate(-1)  --昨天
dt  between trunc(sysdate(-1), 'MM') and sysdate(-1)

如果要求同比,就要取去年月至今:

select add_months(trunc(sysdate(-1), 'MM'),-12)   --去年当月的1号
select add_months(sysdate(-1),-12)   --去年昨日
--注意add_months的使用,巧妙使用该函数可以得到上一个月,上一年的的某一天

环比,求上一个月月至今:

select add_months(trunc(sysdate(-1), 'MM'),-1)   --上个月的1号
select add_months(sysdate(-1),-1)   --上个月的昨日

取上周的周一周日或者特定的周几可用date_sub函数或者next_day函数:

--第一种方法,应用date_sub函数,date_sub(日期,天数),即日期往前天数的日期
select date_sub(sysdate(0), week(sysdate(0)) - 1)
--这里可以妙用date_sub函数,上上周的周一的日期,就可以再嵌套一层
select date_sub(date_sub(sysdate(0), week(sysdate(0)) - 1), 7)  --往前推7天

--第二种方法,应用next_day 函数
select next_day(sysdate(-14), 'Monday')  --上周一,如果要去上上周一,改为sysdate(-21)即可
select next_day(sysdate(-8), 'Sunday')   --上周日,如果要去上上周日,改为sysdate(-15)即可

取某一天是一年的第几周:

--取昨天是今年的第几周
select WeekOfYear(sysdate(-1)) 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值