Нужен mySQL TIMESTAMP для начала текущей недели или какой-либо данной даты? - PullRequest
0 голосов
/ 25 мая 2010

Мне нужна временная метка MySQL для начала текущей недели или любой заданной даты, если неделя начинается с понедельника?

Я пытаюсь что-то вроде:

SELECT UNIX_TIMESTAMP(CONCAT( DATE_SUB(CURDATE(), INTERVAL WEEKDAY(DATE_SUB(CURDATE(), INTERVAL 7 DAY)) DAY), ' 00:00:00')) as start

1 Ответ

0 голосов
/ 25 мая 2010

Понедельник имеет индекс дневной недели = 2. DAYOFWEEK($date) дает указатель дня (1-7, вс-сб). Таким образом, вам нужно добавить или вычесть дни из индекса $ date, чтобы изменить его на 2.

, например

SELECT UNIX_TIMESTAMP(
  CASE WHEN DAYOFWEEK($date)>=2 
    THEN DATE_SUB($date, INTERVAL (DAYOFWEEK($date)-2) DAYS) 
    ELSE DATE_ADD($date INTERVAL 1 DAY) 
  END
);

Я думаю, что у меня есть синтаксис, но проверьте CASE и функции даты и времени .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...