如何在SQL中选择每年的日期范围?



我有一个10年的数据库,我想选择从2015年10月1日到2016年1月1日的日期,以及每年从2016年1月1日到2016年6月1日的日期。下面是我的代码:

WHERE date > to_date('01-OTT-15') AND date <= to_date('01-GEN-16')
WHERE date > to_date('01-GEN-16') AND date <= to_date('01-GIU-16')
WHERE date > to_date('01-GIU-16') AND date <= to_date('01-OTT-16')
WHERE date > to_date('01-OTT-16') AND date <= to_date('01-GEN-17')
WHERE date > to_date('01-GEN-17') AND date <= to_date('01-GIU-17')

等等,直到今天

我想知道是否有一个更精简的代码或循环来复制这个代码。

听起来你想要排除所有年份的7月,8月和9月(可能还有6月,我从问题中看不出来)。

您可以将其放在单个where子句中。使用SQL标准语法(也适用于Oracle):

where extract(month from date) not in (7, 8, 9)

或更积极:

where extract(month from date) in (1, 2, 3, 4, 5, 6, 10, 11, 12)

相关内容

  • 没有找到相关文章

最新更新