重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
不会用函数吗? 其实你就是想查去年1月到去年今天的语句吧?一看就知道是想算同比了。
津南网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站开发等网站项目制作,到程序开发,运营维护。创新互联于2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。
ADD_MONTHS(sysdate,-12) 去年今天
ADD_MONTHS(trunc(sysdate,'yyyy') ,-12)去年第一天
where DATE=ADD_MONTHS(trunc(sysdate,'yyyy') ,-12) and date=ADD_MONTHS(sysdate,-12)
或者 where date between ADD_MONTHS(trunc(sysdate,'yyyy') ,-12) and ADD_MONTHS(sysdate,-12)
设:
1、数据表名称为:TABLE1
2、TABLE1中的date字段名为:COLUMN1
获取去年到今年的上月底的数据的SQL如下:
select *
from TABLE1 t
where t.COLUMN1 = add_months(trunc(sysdate,'YYYY'),-12)
and t.COLUMN1 trunc(sysdate,'MM')
next_day(),last_day(),add_months()这几个函数估计需要用到,还有就是闰年的问题,注意一下就行,可能需要特殊处理
大致过程,首先获取上周每一天的日期,然后根据每个日期获取去年的相同日期,具体怎么获取,自己多试验下,无非是几个函数的组合,不会太难
字段 between last_day(add_months(trunc(sysdate),-13))+1 and add_months(trunc(sysdate),-12)
返回日期格式的话
select trunc(add_months(sysdate,-12),'year') from dual
返回字符格式的话
select to_char(trunc(add_months(sysdate,-12),'year'),'yyyy-mm-dd') from dual