Как подсчитать строки базы данных за 30 дней?

Я работаю над созданием информационной панели для оценки эргономики и пытаюсь разместить одну из своих карточек на информационной панели, чтобы показать, сколько тикетов в настоящее время старше 30 дней. Прямо сейчас это не дает никаких результатов в течение 30 дней, хотя я настроил два билета, чтобы они были старше.

<?php echo $db->mysqli_result(dbQuery("SELECT COUNT(*) FROM tickets WHERE DATE(date_opened) > DATE(NOW()) - INTERVAL 30 DAY")); ?>

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

сколько билетов на данный момент старше 30 дней означает DATE(date_opened) < DATE(NOW()) - INTERVAL 30 DAY
forpas 18.07.2019 16:44

похоже, у вас все хорошо... вы пытались запустить запрос на SQL напрямую? если да, то в чем ошибка? или у вас там пустые записи

Sayed Mohd Ali 18.07.2019 16:44

@forpas - я пробовал это, и это не дало никаких результатов

thealexvond 18.07.2019 16:48

@SayedMohdAli да, это правильно.

thealexvond 18.07.2019 16:49

Тогда у вас нет строк старше 30 дней.

forpas 18.07.2019 16:49

Вы были бы правы, кто-то из команды проекта обновил даты. Спасибо за помощь.

thealexvond 18.07.2019 16:53
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
6
44
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы хотите использовать DATE_SUB():

> DATE_SUB(NOW(), INTERVAL 60 DAY)

Полный запрос:

SELECT COUNT(*) FROM tickets WHERE DATE(date_opened) > DATE_SUB(NOW(), INTERVAL 30 DAY);

Я проверил это, и ваш запрос возвращает 0 строк, в то время как DATE_SUB возвращает правильное значение.

Это подсчет билетов, но он подсчитывает все мои билеты.

thealexvond 18.07.2019 16:51

Тогда у вас есть проблема с данными с вашими значениями date_opened. Не стесняйтесь предоставлять схему и несколько строк данных, и мы можем предоставить дополнительную помощь.

Neil Masters 18.07.2019 16:53

Я бы порекомендовал:

WHERE date_opened < CURDATE() - INTERVAL 30 DAY
------------------^ note less than

Я рекомендую избегать использования DATE(date_opened), потому что это предотвращает использование индекса.

Другие вопросы по теме