MySQL запрос, который возвращает только строки, которые были добавлены после определенного времени, используя - PullRequest
1 голос
/ 21 февраля 2012

Если у меня есть таблица со столбцом TIMESTAMP, и я хочу получить только те строки, которые были добавлены после того, как была создана переменная php, заданная параметром $ time = strtotime ("now"), как мне отформатировать синтаксис запроса?

$ q = "SELECT * FROM webchat_lines WHERE author =" кто-то "* {между $ time и CURRENT_TIMESTAMP} * ЗАКАЗАТЬ ПО id DESC LIMIT 20";

Ответы [ 4 ]

1 голос
/ 21 февраля 2012

Попробуйте:

$q = "SELECT *
      FROM webchat_lines
      WHERE author='someone'
        AND timestamp BETWEEN FROM_UNIXTIME($time) AND NOW()
      ORDER BY id DESC
      LIMIT 20";

При этом используется FROM_UNIXTIME($time) для преобразования вывода strtotime (секунд с 1970-xx-xx и т. Д.) В дату, чтобы ее можно было сравнить с вашим столбцом отметки времени. NOW() является псевдонимом для CURRENT_TIMESTAMP().

1 голос
/ 21 февраля 2012

$ q = "SELECT * FROM webchat_lines WHERE author = 'somebody' AND timestamp_colum МЕЖДУ '$ time' AND CURRENT_TIMESTAMP"

http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#operator_between

0 голосов
/ 21 февраля 2012

В других ответах до сих пор не упоминалось, что время нужно форматировать как MYSQL.

Преобразовать время в строку MYSQL DATETIME

$time = date_format(time(), 'Y-m-d H:i:s');

Запустить SQL

$q = "SELECT * FROM webchat_lines 
        WHERE author = 'someone' AND 
              timestamp BETWEEN '$time' AND NOW() 
        ORDER BY id DESC 
        LIMIT 20";

Мы используем оператор между: http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#operator_between и используем формат даты: http://www.php.net/manual/en/datetime.format.php

Формат даты для mysql - ГГГГ-ММ-ДД чч: мм: сс

0 голосов
/ 21 февраля 2012
$q= "SELECT * FROM webchat_lines WHERE author = 'someone' AND timestamp between $time and NOW() ORDER BY id DESC LIMIT 20"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...