比较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 usemysql_*
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记录与当前时间的主要内容,如果未能解决你的问题,请参考以下文章
Pig 生成一个键更改列 - 将先前记录与当前记录进行比较,但列不同