使用 mysql TIMEDIFF(或类似的东西)的正确方法是什么?在数据库中,我有一个名为 date 的列,它是 setup CURRENT_TIMESTAMP。我正在尝试连续计算 CURRENT_TIMESTAMP 和现在之间的差异,而不是将其回显到所有行..这是我的脚本
<?php
mysql_connect("localhost","root","");//database connection
mysql_select_db("beyondmotors");
$result = mysql_query("SELECT * FROM currentrentals");
echo "<table border='2'>
<tr>
<th>ID</th>
<th>Year</th>
<th>Make</th>
<th>Model</th>
<th>First Name</th>
<th>Last Name</th>
<th>Insurance</th>
<th>Date</th>
<th>Notes</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>" . $row['year'] . "</td>";
echo "<td>" . $row['make'] . "</td>";
echo "<td>" . $row['model'] . "</td>";
echo "<td>" . $row['firstname'] . "</td>";
echo "<td>" . $row['lastname'] . "</td>";
echo "<td>" . $row['insurance'] . "</td>";
echo "<td>" . $row['date'] . "</td>";
echo "<td>" . $row['notes'] . "</td>";
echo ("<td><a href=\"edit_form.php?id=$row[id]\">Edit</a></td></tr>");
echo "</tr>";
}
echo "</table>";
提前致谢
最佳答案
这在很大程度上取决于您的输出。
例如,TIMEDIFF()
输出的是时、分、秒。因此,它仅限于 TIME
数据类型。
给定单位 SECOND
,TIMESTAMPDIFF()
是一个更健壮的解决方案。
所有这些都在 MySQL Date and Time functions 中有详细记录.
最后,您通常会看到这些计算是用代码完成的。 SQL不是这样。在你的情况下是 PHP。您可以通过从 strtotime()
中减去时间戳来进行简单的算术运算。或者,如果您使用的是 PHP >= 5.3,则可以使用 DateTime::diff
.
顺便说一句,避免为您的列命名关键字,即 date
。
关于php - sql 时间差函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9915871/