我通过POST将变量“lasttime”发送到我的PHP脚本。此变量包含时间戳作为字符串。在我的MySQL数据库中,我有一个列'时间'。此列具有“TIMESTAMP”类型,并通过更新当前时间戳输入。
我想从数据库中选择在变量$ lasttime中的时间戳之后有时间戳的所有行。
我的查询:
SELECT * FROM mytable WHERE UNIX_TIMESTAMP(time) > '$lasttime'
问题是,返回所有行。我该如何解决这个问题?
答案 0 :(得分:0)
如果你在$ lasttime中传入一个字符串格式化的日期时间(例如2014-04-19 03:04:05),你首先要将它标准化为unixtime:$unixtime = strtotime($lasttime)
然后sql查询看起来像SELECT * FROM mytable WHERE UNIX_TIMESTAMP(time) > $unixtime
答案 1 :(得分:0)
有可能这样做吗?
$time = date("Y-m-d H:i:s", $lasttime);
SELECT * FROM mytable WHERE timediff('$time',time) > 0
time
是数据库中的列。
答案 2 :(得分:0)
我现在已将其更改为
$time = date("Y-m-d H:i:s", $lasttime); SELECT * FROM mytable WHERE timediff('$time',time) < 0
它工作正常......