Здесь идет еще один SQL вопрос о сроках ...Разделения интервала в течение нескольких недель в Postgres
Я строй приложения календарное с помощью PHP и Postgres, которые будут отображать события, охватывающие дни, неделю или, возможно, месяцы. Каждое событие имеет дату начала и дату окончания, и выбор их по диапазону не является проблемой; однако мне было бы полезно, если Postgres может разделить многонедельные события в первый день каждой недели. Мне сказали, что это можно сделать, используя GROUP BY
и EXTRACT
, но я недостаточно разбираюсь в SQL, чтобы понять, как это сделать.
Вопрос в следующем: может ли это быть сделано, и каков будет точный запрос? В настоящее время я использую SELECT * FROM events WHERE (range) OVERLAPS (range)
; а затем делать расщепление в PHP, но это явно не оптимально.
Спасибо, я не знал о 'generate_series'. В настоящее время я использую 8.3, поэтому, я думаю, мне придется переключиться на 8.4, чтобы действительно использовать эту функцию, потому что применение примера 8.3 к датам кажется немного трудным. – slikts
Это не так сложно, если вы комбинируете generate_series с интервалом в 1 день; есть хороший пример того, чтобы делать такие вещи ежемесячно на http://www.mail-archive.com/[email protected]/msg134699.htmlbv –