如何仅选择大于当前日期和时间的行?

时间:2013-11-13 03:20:27

标签: php mysql date select time

请原谅我,如果这是一个简单的问题,但我试图回应仅在未来的行,即:大于今天的日期和时间。到目前为止,这是我的代码:

$date = date('Y-m-d');
$time = date("G:i:s", time());

$eventsquery = "SELECT * FROM events as A WHERE tech='$userecho' AND date >= '$date' ORDER BY date ASC, time ASC";
$eventsresult = mysql_query($eventsquery, $eventsdbhandle);

这非常适合给我今天或将来的行, 这个问题是,这将为我提供当天在当前时间之前发生的条目。所以我尝试添加这个:

$eventsquery = "SELECT * FROM events as A WHERE tech='$userecho' AND date >= '$date' AND time >= '$time' ORDER BY date ASC, time ASC";

但我根本没有任何行。我知道这可能很容易解决,但我在这个网站上找不到修复它的东西。任何帮助都会很棒。

表中的时间以这种格式存储:hh:mm:ss ie:14:23:12

2 个答案:

答案 0 :(得分:2)

一种方法

SELECT * 
  FROM events
 WHERE tech = ?
   AND ADDTIME(date, time) > NOW()
 ORDER BY ADDTIME(date, time)

这是 SQLFiddle 演示

答案 1 :(得分:2)

如果您有1列日期时间值,则可以说

"SELECT * FROM table_name WHERE entry_time > NOW()"

但是,如果每个日期和时间有两个不同的列,则会变得复杂 你必须使用

"SELECT * FROM table_name WHERE entry_date > CURDATE() OR (entry_date = CURDATE() AND entry_time > CURTIME()"