日期:2014-05-16  浏览次数:20968 次

很着急的用一条MYSQL语句,各位高手帮帮忙
各位高人,看能实现不。
这个表有4个字段 ,id(int), nameID(int) ,startDate(datetime),endDAT(datetime)
插入好多条数据,有的人可能有多条数据,我要实现的功能是,用一条语句,把每个人的时间间隔总和计算出来,然后按照每个人的时间间隔总和对人员(nameID)进行排序,这个日期都是要精确到秒的。我水平不行,试着用DATEDIFF,TIMEDIFF计算经过的秒数都不准确,高手指点迷津,真捆扰死了

id(int), nameID(int) ,startDate(datetime),endDAT(datetime)
1 ww 1899-12-10 00:00:00 1900-12-15 00:00:00
2 zz 1899-12-15 00:00:01 1899-12-19 00:02:00
3 ww 1899-12-15 10:00:03 1899-12-15 10:00:03
4 ee 1899-12-15 00:00:01 1899-12-19 00:02:00

------解决方案--------------------
SQL code
select nameID,sum(UNIX_TIMESTAMP(endDAT)-UNIX_TIMESTAMP(startDate))
from 这个表
group by nameID 
order by 3 desc;

------解决方案--------------------
你的日期怎么都是 1900 年之前的啊??
------解决方案--------------------
SQL code

select nameID,sum(timestampdiff(second,starttime,endtime))
from 这个表
group by nameID

------解决方案--------------------
转换成TIMESTAMP类型,这样就可以计算啦。
1899-12-19 应该是台湾的年份吧 :)
------解决方案--------------------
SELECT TIMEDIFF('1900-12-19 12:45:06','1900-12-19 10:00:05');
 
-----------------------------------------------
02:45:01

这样怎么不对了
------解决方案--------------------
应该没错啊,你觉得有所是不是因为
'1900-02-27',
'1900-02-28',
'1900-02-29', ---> 这天不存在(除了在Excel里),1800,1900,2100都不是闰年
'1900-03-01'