Как я могу отобразить и подсчитать значения, даты которых наступили вчера? Я time()
вставлял дату в базу данных. Пример:
URL: google.com youtube.com google.com youtube.com test.com youtube.com
DateVisited: 1313668492 1313668540 1313668571 13154314
Я хочу отображать, сколько URL-адресов было несколько, в таблице, а также сколько из этих URL-адресов было посещено вчера. Пример результата:
LINK | timesExisted | timesVisitedYesterday
Google.com | 2 | 2
youtube.com| 3 | 3
У меня уже есть идея получить вчерашнюю дату, но я не знаю, как подсчитать, сколько раз URL-адрес существовал за вчерашний день, и сколько раз URL-адрес существовал в таблице.
Ты можешь использовать:
или
или
или
источник
Вы можете получить вчерашнюю дату, используя выражение
CAST(NOW() - INTERVAL 1 DAY AS DATE)
. Так что что-то вроде этого может сработать:источник
Запрос за последние недели:
источник
Расчет последней или следующей даты, недели, месяца и года. Это может быть полезно для всех.
Текущая дата:
Вчерашний день:
Завтра:
За последнюю неделю:
Следующая неделя:
Последний месяц:
Следующий 1 месяц:
Текущий месяц:
Последний год:
Следующий 1 год:
источник
Хотя выбранный ответ правильный и более сжатый, я бы поспорил за структуру, отмеченную в других ответах:
Если вам просто нужна голая дата без отметки времени, вы также можете написать ее следующим образом:
Причина для использования по
CAST
сравнению сSUBDATE
ISCAST
является синтаксис ANSI SQL.SUBDATE
является специфической для MySQL реализацией арифметического компонента датыCAST
. Привычка использовать синтаксис ANSI может уменьшить головную боль, если вам когда-либо придется переходить на другую базу данных. Также хорошо иметь привычку в качестве профессиональной практики, поскольку в будущем вы почти наверняка будете работать с другими СУБД.Ни одна из основных СУБД не полностью совместима с ANSI, но большинство из них реализуют широкий набор синтаксиса ANSI, тогда как почти ни одна из них за пределами MySQL и его потомков (MariaDB, Percona и т. Д.) Не будет реализовывать синтаксис, специфичный для MySQL.
источник
Я адаптировал один из приведенных выше ответов от cdhowie, так как не смог заставить его работать. Мне кажется, это работает. Я подозреваю, что это также можно сделать с помощью функции UNIX_TIMESTAMP.
источник