sql timediff函数

时间:2012-03-28 21:24:56

标签: php mysql datetime

使用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>";

提前致谢

2 个答案:

答案 0 :(得分:3)

这可能在很大程度上取决于您的输出。

例如,TIMEDIFF()输出是小时,分钟,秒。因此,它仅限于数据类型TIME

给定单位SECONDTIMESTAMPDIFF()是一个更强大的解决方案。

所有这些都在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']);

希望有所帮助。