我通过POST将变量"lasttime"发送到我的PHP脚本。此变量以字符串形式包含时间戳。在我的MySQL数据库中,我有一列"时间"。此列的类型为"TIMESTAMP",并通过更新当前时间戳来输入。
我想从数据库中选择变量$lasttime中时间戳之后有时间戳的所有行。
我的查询:
SELECT * FROM mytable WHERE UNIX_TIMESTAMP(time) > '$lasttime'
问题是,所有的行都会被返回。我该怎么解决?
如果您在$lasttime中传递一个字符串格式的日期时间(例如2014-04-19 03:04:05),则必须首先将其规范化为unixtime:$unixtime = strtotime($lasttime)
然后sql查询将看起来像SELECT * FROM mytable WHERE UNIX_TIMESTAMP(time) > $unixtime
这样做可能吗$time = date("Y-m-d H:i:s", $lasttime);
SELECT * FROM mytable WHERE timediff('$time',time) > 0
time
是数据库中的列。
我现在已经将其更改为
$time = date("Y-m-d H:i:s", $lasttime); SELECT * FROM mytable WHERE timediff('$time',time) < 0
而且效果很好。。。