Работа с датами

  • Автор темы Sh00r00p
  • Дата начала
S

Sh00r00p

#1
каким образом можно
определить входит ли в период который составляют 2 поля месяц переменной в которой лежит дата(вообще говоря это поле)

Что-то вроде
select * from table where
period_begin <= trunc(TO_DATE('03.01.2003','MM/DD/YYYY'),'mm')
and period_end >= trunc(add_months(TO_DATE('03.01.2003','MM/DD/YYYY'),1),'mm')-1

но, данные TO_DATE('03.01.2003','MM/DD/YYYY') это переменная, и надо менять дни на 1-е число месяца или просто сравнивать с принадлежностью к месяцу.
 
A
#2
не совсем понял постановку задачи, но думаю, что функция extract вам поможет, например
select * from table where extract(year from dt)=2003 and extract(month from dt)=1
 
O
#3
Непонятна постановка задачи. С интервалом дат сравнивается дата или с интервалом месяцев сравнивается месяц. Если надо последний день месяца узнать, то можно использовать
last_day(to_date('03.01.2003','MM/DD/YYYY')).