Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / OR и AND / 7 сообщений из 7, страница 1 из 1
15.06.2006, 12:51
    #33792621
grey_hu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OR и AND
Добрый день.
Вопрос такой:
есть таблица размещений с датой начала и датой конца
$date_now = 2006-06-15
id | fr_dat | to_dat
-----+------------+------------
1 | 2006-03-17 | 2006-06-17
1 | 2006-06-12 | 2006-06-25
1 | 2006-06-15 | 2006-06-30
1| 2006-04-29 | 2006-07-27
1 | 2006-04-03 | 2006-07-01
1 | 2006-05-04 | 2006-07-04
1 | 2006-05-04 | 2006-06-13
нужно выбрать все строки в интервал которых попадает сегодняшнее число, но даже если размещение к сенодня уже закончилось, размещение должно попасть в выборку если оно закончилось в текущем месяце т.е последняя строка должна попасть в выборку..
логически - что - то вроде этого:
SELECT id FROM table WHERE id='1' AND (date_part('month', to_dat)='6' AND date_part('year', to_dat)='2006') OR (fr_dat<='2006-06-15' AND to_dat >= '2006-06-15');
но не работает...
помогите , pliz
...
Рейтинг: 0 / 0
15.06.2006, 13:11
    #33792702
ZemA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OR и AND
это?
Код: plaintext
1.
2.
3.
SELECT id, fr_dat, to_dat
  FROM table
 WHERE id='1'
   AND now() between fr_dat and date_trunc('month', to_dat + '1 mon'::interval) - '1 day'::interval
...
Рейтинг: 0 / 0
15.06.2006, 13:30
    #33792774
Владимор Конев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OR и AND
Ну, или если уж очень охото через AND и OR, то тогда вот так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
select * 
  from t
 where id = '1'
   AND (
          now()  between fr_dat 
                     and to_dat
          or
          to_dat between date_trunc('month', now() )
                     and now() 
       )


-----------------------------------------------------------------------------------------------------------------------------------------
З.Ы.
Неспешно ищу работу, согласен на переезд в Москву или Питер
...
Рейтинг: 0 / 0
15.06.2006, 13:33
    #33792781
grey_hu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OR и AND
если чстно - не понял =(
...
Рейтинг: 0 / 0
15.06.2006, 13:35
    #33792788
grey_hu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OR и AND
Владимор Конев
это я не вам =)
...
Рейтинг: 0 / 0
15.06.2006, 13:40
    #33792813
Владимор Конев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OR и AND
grey_huесли чстно - не понял =(
grey_huВладимор Конев
это я не вам =)
Тем не менее скажу свое слово...
А чего там непонятного? Логика там такая: проверяется попадание сегодняшнего числа в интервал от fr_dat до последнего числа текущего месяца относительно даты to_dat :).
Другими словами, ZemA проверяет не саму дату to_dat, а последний день месяца, в котором было это самое to_dat

-----------------------------------------------------------------------------------------------------------------------------------------
З.Ы.
Неспешно ищу работу, согласен на переезд в Москву или Питер
...
Рейтинг: 0 / 0
15.06.2006, 14:39
    #33793066
grey_hu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OR и AND
Разобрался. Спасибо большое!
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / OR и AND / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]