Как выбрать элементы из интервала дат независимо от года - Informix DB - PullRequest
2 голосов
/ 06 августа 2020

У меня проблемы с выбором элементов из определенного интервала дат. Я хочу выбирать элементы из интервала, основанного только на днях и месяцах.

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

Ответы [ 2 ]

2 голосов
/ 06 августа 2020

Вы можете использовать части даты с некоторыми арифметическими цифрами c:

where month(date_from) * 100 + day(date_from) between 0731 and 0813

Или в виде строк:

where to_char(date_from, '%m-%d') between '0731' and '0813'
1 голос
/ 07 августа 2020

Другое возможное решение:

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 не имеют значения, поскольку они будут обнулены при выполнении сравнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...