MySQL. Определение даты дня недели.

Очень часто бывает задача найми, например понедельник относительно какой то даты.
В SQL есть две функции даты которые позволяют это сделать WEEKDAY() — возвращает день недели начиная с пн. в виде 0-6.

WEEKDAY(date), /*0-6 0-пн*/

И DATE_ADD() — смещает дату на n-е количество дней относительно своего аргумента

DATE_ADD(date,INTERVAL expr type)

Окончательно запрос для выбора понедельника относительно произвольной даты выглядит следующим образом.

select
    `date`,
     DAYNAME(`date`) AS `day`,
     WEEKDAY(`date`), /*0-6 0-пн*/
     DATE_ADD(`date`,INTERVAL -WEEKDAY(`date`) DAY) AS 'Monday'
from clicks 
where
    `date` BETWEEN '2015-05-19 00:00:00' AND '2015-05-25 23:59:59'
group by 
`day`;

Результат запроса выглядит как:

125



Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>