1

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

$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 即:14:23:12

4

2 回答 2

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()"
于 2013-11-13T03:36:10.903 回答
2

一种方法

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

这是SQLFiddle演示

于 2013-11-13T03:34:56.483 回答