Я отправляю переменную lasttime через POST в свой PHP-скрипт. Эта переменная содержит метку времени в виде строки. В моей базе данных MySQL есть столбец «время». Этот столбец имеет тип «TIMESTAMP», и при обновлении вводится текущая отметка времени.

Я хочу выбрать все строки из базы данных, у которых есть отметка времени после отметки времени в переменной $ lasttime.

Мой запрос:

SELECT * FROM mytable WHERE UNIX_TIMESTAMP(time) > '$lasttime'

Проблема в том, что возвращаются все строки. Как я могу это исправить?

0
m.b 19 Апр 2014 в 03:01

3 ответа

Лучший ответ

Я изменил это сейчас на

$time = date("Y-m-d H:i:s", $lasttime); SELECT * FROM mytable WHERE timediff('$time',time) < 0

И работает нормально ...

0
m.b 21 Апр 2014 в 13:22

Если вы передаете в $ lasttime строку datetime в формате (например, 2014-04-19 03:04:05), вы сначала должны нормализовать ее до unixtime: $unixtime = strtotime($lasttime) Тогда запрос sql будет выглядеть так: SELECT * FROM mytable WHERE UNIX_TIMESTAMP(time) > $unixtime

0
martin-georgiev 18 Апр 2014 в 23:08

Возможно ли это сделать так?
$ time = date ("Y-m-d H: i: s", $ lasttime); ВЫБРАТЬ * ИЗ mytable WHERE timediff ('$ time', time)> 0

time - это столбец в базе данных.

0
m.b 19 Апр 2014 в 11:51