使用mysql TIMEDIFF的正确方法是什么(或类似的东西)?在数据库中,我有一个名为date的列,它设置为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>";
提前致谢
答案 0 :(得分:3)
这可能在很大程度上取决于您的输出。
例如,TIMEDIFF()
输出是小时,分钟,秒。因此,它仅限于数据类型TIME
。
给定单位SECOND
,TIMESTAMPDIFF()
是一个更强大的解决方案。
所有这些都在MySQL Date and Time functions中有详细记载。
最后,您通常会看到使用代码完成这些计算。那不是SQL。在你的情况下PHP。您可以通过从strtotime()
中减去时间戳来进行简单的算术运算。或者,如果您使用的是PHP&gt; = 5.3,则可以使用DateTime::diff
。
另外,请避免命名列关键字,即date
。
答案 1 :(得分:0)
我会这样做:
SELECT (fields), UNIX_TIMESTAMP(date) as date FROM currentrentals
然后您可以使用$row['date']
访问日期。现在您可以轻松地减去这些日期。
$timesince = date(format, time() - $row['date']);
希望有所帮助。