Вывод WHERE по дипозону времени

izac
Дата: 24.12.2012 11:55:46
Доброе время суток , не могу понять как сделать выборку по деапозону времени например в среду я должен сделать выборку за полную прошедшею неделю с ПН по ВСК например (26.12.12 должен сделать выборку с дипозоном (17.12.12-23.12.12)) причём это должно быть каждую неделю .
trew
Дата: 24.12.2012 12:04:15
izac,

select ....
from ....
where WEEK(date) = WEEK(curdate())-1;

допилите запрос для случая: переход через новый год (используя опетаторы YEAR и CASE)
izac
Дата: 24.12.2012 12:06:30
Пасибо )
tanglir
Дата: 24.12.2012 12:06:55
izac, week(), date_add(), немного арифметики - и вопрос решён.
izac
Дата: 24.12.2012 12:36:32
trew,
я тока саму идеё про новый год не понял (что такое кейс и еар я понял а вот к чему оно не понял )
vkle
Дата: 24.12.2012 12:42:15
Номер недели со сменой года прыгает
izac
Дата: 24.12.2012 12:51:31
Да знаю 2013.1.1 будет 0 и выходит если я нажму в то оно выдаст 52 неделю 2013 года так а кес тут причём если мы будем минять 2012 на 2013 то весь год менять будет или типа если 52 неделя то кейс делать запрос на 2012 год ?
Akina
Дата: 24.12.2012 12:56:00
Если нужно выбрать последнюю неделю года (переходную, которая в старом году неполная), или предпоследнюю, но после НГ, надо вводить корректировки.
Akina
Дата: 24.12.2012 12:58:06
Универсальное решение - получить отдельно понедельник и воскресенье предыдущей недели. Использовать datesub() и dayofweek()
tanglir
Дата: 24.12.2012 13:06:28
Akina, мало того, что универсальное, так оно ещё и индекс по дате подхватить может.