从当前开始算加上过去两年,用什么函数?

[复制链接]
查看11 | 回复5 | 2013-2-25 14:51:24 | 显示全部楼层 |阅读模式
本帖最后由 hanyush 于 2013-4-17 11:33 编辑
今天是4月17号,需要将截止到当天为止,以及过去两年内的数据取出来,改怎么写?
需要2013.1.1到2013.4.17的数据,以及2012和2011年整年的数据。
截止到当天的意思,这个时间不是固定的,4.17号是当天,到了10.1号也是当天,然后还要加上过去两年的数据。
比如:现在是2020.5.10年,也只有2020.1.1到2020.5.10年以及2019年+2018年的数据。其他年度的不需要取。




回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
方法比较多,你可以使用trunc和add_months函数进行。
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
本帖最后由 digdeep126 于 2013-4-17 11:56 编辑
date_time between add_months(truncate(sysdate),-24) and truncate(sysdate);
date_time>=add_months(trunc(sysdate),-24)and date_time=add_months ...
如果是2014年3月1日,用这个语句后,会显示2012整年,2013这年以2014.01.01到2014年3月1日的数据吗?

回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
dt>=to_date(to_char(dt,'yyyy')||'-01-01','yyyy-mm-dd')
and dt= add_months(truncate(sysdate,'year'),-24) and date_time= add_months(truncate(sysdate,'year'),-24) and date_time
应该是这样写吧?
select add_months(trunc(sysdate, 'year'), -24) from dual
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
hh7yx 发表于 2013-4-17 14:02
应该是这样写吧?
select add_months(trunc(sysdate, 'year'), -24) from dual

一样的,缩写而已
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
digdeep126 发表于 2013-4-17 13:30
不行,要修改:
date_time >= add_months(truncate(sysdate,'year'),-24) and date_time

date_time >= add_months(truncate(sysdate,'year'),-24) and date_time= add_months(truncate(sysdate,'year'),-24) and date_time
不是,两年是24个月。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行