--这样是显示的结果是差值总的秒数
创新互联主要从事网站设计制作、成都网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务老边,十年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
select sum(unix_timestamp(B)-unix_timestamp(A)) as 秒数
from tb
--这样是显示成 xxx:xx:xx 的形式
select sec_to_time(sum(unix_timestamp(B)-unix_timestamp(A))) as ti
from tb
--
MySQL
DATEDIFF 只计算到天的单位
mysql SELECT DATEDIFF (
- '2000-01-01 00:00:00.000000',
- '2000-01-02 05:06:07.000008') A;
+------+
| A |
+------+
| -1 |
+------+
1 row in set (0.00 sec)
TIMEDIFF 精确到毫秒单位
mysql SELECT
- TIMEDIFF ('2000-01-01 00:00:00.000000',
- '2000-01-02 05:06:07.000008') A;
+------------------+
| A |
+------------------+
| -29:06:07.000008 |
+------------------+
1 row in set (0.00 sec)
假如你是要按毫秒为单位的:
SELECT
SUM(TIMEDIFF(paytime, (SELECT MAX(paytime) FROM 表) ))
FROM
表
你需要知道在mysql数据库中是没有行,这一概念的。所以说,你让下一行减去上一行这个本身就是不成立的。处理的办法是把数据输出之后,用程序比如PHP。等等进行处理输出。单独用sql是无法实现的。
select tid, a.sum-b.sumfrom (select tid, sum(num) as sum from A order by tid)a,(select tid, sum(num) as sum from B order by tid)bwhere a.tid = b.tid
试一下上面的sql语句行不行