2012-04-09 11 views
4

PHPを使用してこれを行うことができますが、クエリを使用して2回の差を計算する方法があるかどうか調べたいと思っていましたか?私は以下のクエリを試しましたが、それは時差のためにNULLを返しています。mysql - クエリで2回の差を計算する

私のテーブル内のデータは次のように保存されている:私は返す方法を把握したかった

| created | changed | 
+------------+------------+ 
| 1333643004 | 1333643133 | 

| 2012-04-05 09:23:24 | 2012-04-05 09:25:33 |  00:02:09 | 

私が試した:

SELECT 
    FROM_UNIXTIME(created) AS created, 
    FROM_UNIXTIME(changed) AS changed, 
    TIMEDIFF (changed, created)/60 AS timediff 
FROM content 
    WHERE id = 45; 

をもたらしたどの:

| 2012-04-05 09:23:24 | 2012-04-05 09:25:33 | NULL | 

答えて

8

TIMEDIFF()によって返される結果は、 TIME値に許可される範囲に制限されています。あるいは、両方とも整数を返す関数 TIMESTAMPDIFF()UNIX_TIMESTAMP()のいずれかを使用することもできます。

両方の列(整数を返す)でUNIX_TIMESTAMP()を呼び出し、それらを減算します。これは、クエリやPHPで変換できる整数を与えます。私が見

SELECT 
    UNIX_TIMESTAMP(created) AS created, 
    UNIX_TIMESTAMP(changed) AS changed, 
    changed-created AS difference 
FROM content 
    WHERE id = 45; 

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_unix-timestamp

+0

...応答と説明をありがとう! –

関連する問題