选择具有特定日期的行

时间:2014-04-18 23:01:59

标签: php mysql datetime compare

我通过POST将变量“lasttime”发送到我的PHP脚本。此变量包含时间戳作为字符串。在我的MySQL数据库中,我有一个列'时间'。此列具有“TIMESTAMP”类型,并通过更新当前时间戳输入。

我想从数据库中选择在变量$ lasttime中的时间戳之后有时间戳的所有行。

我的查询:

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

问题是,返回所有行。我该如何解决这个问题?

3 个答案:

答案 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

它工作正常......