ВЫБРАТЬ количество (*), откуда дата (номер недели) равна номеру текущей недели - PullRequest
0 голосов
/ 05 августа 2020

Я использую это для запроса из моей таблицы:

$res = $link -> query("SELECT count(*) FROM sales WHERE status='OK'") or die($mysqli->error);
$num_rows = mysqli_fetch_row($res)[0];
$numberOfSales = $num_rows;

В таблице sales У меня также есть столбец с именем date datetime.

Я хочу, чтобы он только возвращал количество строк, в которых дата совпадает с номером текущей недели. Итак, если в ячейке столбца даты указано значение 2020-08-03 16:25:26, то номер недели будет равен 32. Я смотрел на strftime("%V",, но не знаю, как действовать дальше. Есть советы?

1 Ответ

0 голосов
/ 05 августа 2020

Рассмотрение и удобное для индекса выражение, например:

select count(*) 
from sales 
where 
    status='OK' 
    and datetime >= current_date - interval weekday(current_date) day

Выражение current_date - interval weekday(current_date) day динамически вычисляет дату, соответствующую первому дню текущей недели (начиная с понедельника).

Если у вас могут быть даты в будущем, вы можете добавить верхний предел:

where 
    status='OK' 
    and datetime >= current_date - interval weekday(current_date) day
    and datetime <  current_date + interval (7 - weekday(current_date)) day 
...