Mysql дата менее недели работы - PullRequest
0 голосов
/ 14 апреля 2011

Предположим, у вас есть два значения даты и времени: date_a и date_b

Какое выражение оценивается как истинное, если date_a происходит в пределах или меньше , чем календарная неделя из date_b?

Ответы [ 2 ]

3 голосов
/ 15 апреля 2011

Просто используйте MySQL week() function .

Пример:

mysql> create table daten (a date, b date);
mysql> insert into daten values ('2011-04-14', '2011-04-12');
mysql> insert into daten values ('2011-04-14', '2011-04-22');

mysql> select * from daten where (week(a)=week(b) and year(a)=year(b)) or a<b;
+------------+------------+
| a          | b          |
+------------+------------+
| 2011-04-14 | 2011-04-12 |
+------------+------------+

Это даст вам все записи с той же или более ранней календарной неделейчем б.Обратите внимание, что week(a)<=week(b) не будет работать, потому что недели начинаются снова каждый год.

Примечание: Существует более одного соглашения для подсчета календарных недель (неделя начинается в воскресенье или в понедельник, разныеначало первой недели года).Вы можете передать необязательный второй параметр "mode" в week(), чтобы указать, какое соглашение использовать;смотри документы.Конечно, для этой проблемы важен только день начала недели, а не первая неделя года.

1 голос
/ 15 апреля 2011

Более грубый метод:

Select ...
From DateValues
Where date_a >= Date_Add( date_b, Interval -DayOfWeek( date_b ) + 1 Day )
    And date_a <= Date_Add( date_b, Interval -DayOfWeek( date_b ) + 7 Day )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...