Как получить количество записей, добавленных с начала текущего месяца

Я строю веб-сервис, используя php & mysql, и хотел бы ограничить количество запросов от каждого apikey до (x) количества в течение (y) времени.

Чтобы добиться этого, я считаю количество записей, добавленных в журнал от каждого apikey в течение периода, используя выражение SQL, как это:

SELECT COUNT(*) FROM ws_account_log WHERE account_log_account_id='1' AND account_log_timestamp > DATE_SUB(now(), INTERVAL 1 HOUR)

Это дает мне скользящий почасовой подсчет, и это хорошо, но я бы хотел установить жесткое ограничение на месячный подсчет. например, сколько строк было добавлено с 00:00 первого дня текущего месяца.

Я видел примеры использования хранимых процедур и другого синтаксиса, я хотел бы получить ответ, который будет работать на MYSQL, пожалуйста. Также, если возможно, самая быстрая реализация в качестве одной из служб предоставляет функции автозаполнения, поэтому таблица журнала довольно велика.

Спасибо

2 ответа

Решение
SELECT COUNT(*)
FROM ws_account_log
WHERE
      account_log_account_id='1'
  AND account_log_timestamp >= SUBDATE(CURDATE(), DAYOFMONTH(CURDATE())-1)

Вычислите временную метку до нужного момента, используя php, затем передайте ее в запрос mysql.

$date = mktime(0, 0, 0, date("n"), 1, date("Y"));
$mysqldate = date( 'Y-m-d H:i:s', $date );
$query = " ... AND account_log_timestamp > ".$mysqldate;
Другие вопросы по тегам