假设我的日期范围是最新的:2015年1月1日至2015年2月17日。
我还需要2014年1月1日至2014年2月17日的数据。
如何在sql中编写查询?
我想获得这些CYD和pYD的数据。
答案 0 :(得分:0)
以下是Oracle中的一个示例:
select sysdate - interval '1' year from dual;
关键词' interval'也存在于其他SQL语言中,如postgres。
答案 1 :(得分:0)
要从日历表中选择日期范围,我可能会在标准SQL中写这个。
select cal_date from calendar
where cal_date between date '2015-01-01'
and current_date
or cal_date between date '2015-01-01' - interval '1' year
and current_date - interval '1' year
order by cal_date;
如果我想识别每个范围内的行,我会添加文字值。
select 'cyd', cal_date
from calendar
where cal_date between date '2015-01-01'
and current_date
union all
select 'pyd', cal_date
from calendar
where cal_date between date '2015-01-01' - interval '1' year
and current_date - interval '1' year
order by cal_date;