2012-03-28 3 views
1

mysql TIMEDIFF(または類似のもの)を使用する適切な方法は何ですか?データベースには私は日付と呼ばれる列があり、それはセットアップCURRENT_TIMESTAMPです。私は、行の今CURRENT_TIMESTAMPとの間Differeneのを計算しようとすると、すべての行に..ここに私のスクリプトは、私はこのように行うだろう事前sql timediff function

答えて

3

これは出力に大きく左右される可能性があります。

たとえば、TIMEDIFF()の出力は時間、分、秒です。そのため、データタイプはTIMEに制限されています。

SECONDの単位を指定すると、TIMESTAMPDIFF()はより堅牢なソリューションです。

このすべては、MySQL Date and Time functionsによく記載されています。

最後に、通常、これらの計算はコードで行われています。それはSQLではありません。 PHPの場合。 strtotime()からタイムスタンプを減算することで、簡単な算術演算を行うことができます。または、PHP> = 5.3を使用している場合は、DateTime::diffを使用できます。

脇に、列キーワードの名前を付けないでください(例:date)。

0

<?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>"; 

おかげだとエコーよりもよ:

SELECT (fields), UNIX_TIMESTAMP(date) as date FROM currentrentals 

そして、$row['date']で日付にアクセスできます。これで簡単にこれらの日付を引くことができます。

$timesince = date(format, time() - $row['date']);