我知道我可以使用PHP来做这件事,但想知道是否有办法只使用查询来计算两次之间的差异?我尝试了下面的查询,但它为时差返回NULL.
我表中的数据存储为:
| created | changed |
+------------+------------+
| 1333643004 | 1333643133 |
Run Code Online (Sandbox Code Playgroud)
我想弄清楚回归的方法:
| 2012-04-05 09:23:24 | 2012-04-05 09:25:33 | 00:02:09 |
Run Code Online (Sandbox Code Playgroud)
我试过了:
SELECT
FROM_UNIXTIME(created) AS created,
FROM_UNIXTIME(changed) AS changed,
TIMEDIFF ( changed, created ) / 60 AS timediff
FROM content
WHERE id = 45;
Run Code Online (Sandbox Code Playgroud)
产生了:
| 2012-04-05 09:23:24 | 2012-04-05 09:25:33 | NULL |
Run Code Online (Sandbox Code Playgroud)
返回的结果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;
Run Code Online (Sandbox Code Playgroud)
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_unix-timestamp
| 归档时间: |
|
| 查看次数: |
8849 次 |
| 最近记录: |