比较mysql记录与当前时间

Posted

技术标签:

【中文标题】比较mysql记录与当前时间【英文标题】:Comparing mysql record with current time 【发布时间】:2013-02-22 15:02:17 【问题描述】:

我有一个查询显示用户以年-月-日开始时间(00:00:00) 结束时间(00:00:00) 格式进行的约会,现在我想比较整个格式使用当前时间,如果它等于或更高不显示预约,因为用户可以选择取消预约,如果预约时间已经过去,我想对他隐藏取消预约选项......这是我的查询和 html 回显...

$result = mysql_query("SELECT id,date,start,end FROM jos_jxtc_appbook_appointments WHERE userident='$idusera'");
while($row = mysql_fetch_assoc($result))

echo '<div class="record" id="record-',$row['id'],'">
    <a href="?delete=',$row['id'],'" class="delete">Delete</a>
    <strong>',$row['date'], $row['start'], $row['end'],'</strong>
  </div>';

【问题讨论】:

Please, don't use mysql_* functions in new code。它们不再维护and are officially deprecated。看到red box?改为了解 prepared statements,并使用 PDO 或 MySQLi - this article 将帮助您决定哪个。 【参考方案1】:

除了不使用mysql_函数,只用时间函数来做对比:

SELECT ... FROM ... WHERE timeColumn > CURTIME()

见Date and Time Functions

【讨论】:

如果我执行此查询,这会实时删除我已通过的约会吗?还是我必须使用 ajax 或类似的方法? 它将实时完成(基于CURTIME() 我正在使用此查询“SELECT id,date,start,end FROM jos_jxtc_appbook_appointments WHERE userident='$idusera' AND date 我不知道你的数据或表格是什么样子的。【参考方案2】:

我使用了这个查询,它现在正在按照我的意愿工作......

 $result = mysql_query("SELECT id,date,start,end FROM jos_jxtc_appbook_appointments WHERE userident='$idusera' AND CONCAT(date,' ',start)> DATE_ADD( NOW( ) , INTERVAL 6 HOUR )");
 while($row = mysql_fetch_assoc($result))
 

 echo '<div class="record" id="record-',$row['id'],'">
    <a href="?delete=',$row['id'],'" class="delete">Delete</a>
    <strong>',$row['date'],$space,$row['start'],$space,$row['end'],'</strong>
  </div>';

 

这部分 DATE_ADD(NOW( ) , INTERVAL 6 HOUR ) 是因为 mysql 中的 time_zone 与我的 (-6) 不同,并且因为我不能直接更改 mysql 中的时区(因为我没有超级权限)。

【讨论】:

以上是关于比较mysql记录与当前时间的主要内容,如果未能解决你的问题,请参考以下文章

将日期和时间与 MySQL 中的当前时间进行比较

oracle 与mysql 的当前时间比较

Pig 生成一个键更改列 - 将先前记录与当前记录进行比较,但列不同

Drupal & PHP/MySQL:如何将字段与当前用户的字段进行比较?

mysql根据记录当前日期确定未来日期

PHP+MYSQL怎么查询3天后到期的字段