我在从特定日期间隔中选择项目时遇到麻烦。 我想从仅基于天和月的间隔中选择项目。
items_table
item_name | date_from
item1 30.6.2015
item2 31.7.2015
item3 5.8.2019
item4 14.8.2000
我需要这样的东西:
select *
from items_table
where date_from
between '****-07-31' and '****-08-13';
****可以是一切-例如2010、2011、2012 ......
我只想得到:
item2
item3
答案 0 :(得分:2)
您可以通过一些算术运算来使用日期部分:
where month(date_from) * 100 + day(date_from) between 0731 and 0813
或作为字符串:
where to_char(date_from, '%m-%d') between '0731' and '0813'
答案 1 :(得分:1)
另一种可能的解决方案:
select *
from items_table
where
extend(date_from, month to day) between extend('2000-07-31'::date, month to day) and extend('1998-08-13'::date, month to day);
2000年和1998年无关紧要,因为进行比较时它们将被清零。