2013-03-01 60 views
10
一天

我有这样的表,但我也很无奈如何计算秒,从这个表中的每个单独的一天:mysql的计算到秒每个

id from   to 
--------------------------------------------------- 
1 2013-01-31 23:50:00 2013-02-02 09:00:00 
2 2013-02-05 11:21:12 2013-02-08 01:01:01 
3 2013-02-08 17:33:44 2013-02-08 18:22:55 
4 2013-02-12 01:40:12 2013-02-12 02:00:59 
5 2013-02-28 01:40:12 2013-03-02 02:00:59 

现在我需要获得的秒数从二月到二月的每一天。 所以2月1日 - x秒,2月2日 - y秒,2月3日 - 0秒等。任何想法我应该怎么做?非常感谢。

+0

@dom:该OP希望通过天分组的结果。 – eggyal 2013-03-01 11:54:35

+0

对于要返回所需结果的SQL查询,您必须将包含您希望获得结果的日期的列加入到表中。 MySQL本身并不提供任何方法在给定的时间间隔内生成所有日期(甚至整数),因此您必须在应用程序层实现这样一个表,或者在MySQL中存储生成这样一个临时表的程序。如果做后者,你可以在MySQL中存储一个程序,以更直接地构建你想要的结果集。这一切都表明,MySQL可能不是这个问题的最佳工具。 – eggyal 2013-03-01 12:03:13

+0

轻微变化,得到每FROM日期部分的数目:选择FROM日期,和时间(秒)从 ( SELECT ID,TIMESTAMPDIFF(SECOND,'from','to')作为秒,日期('from') 作为FROM日期 从t1 )t2 group by fromDate; http://rextester.com/QEPL38222 – 2017-02-22 21:10:23

回答

23

使用TIMESTAMPDIFF MySQL。

SELECT TIMESTAMPDIFF(SECOND,from,to); 

例子:

SELECT TIMESTAMPDIFF(SECOND,'2016-01-01 00:00:00','2016-01-11 00:00:00'); -- 864000 
SELECT TIMESTAMPDIFF(MINUTE,'2016-01-01 00:00:00','2016-01-11 00:00:00'); -- 14400 
SELECT TIMESTAMPDIFF(HOUR,'2016-01-01 00:00:00','2016-01-11 00:00:00'); -- 240 
SELECT TIMESTAMPDIFF(DAY,'2016-01-01 00:00:00','2016-01-11 00:00:00'); -- 10 
+2

OP希望将结果按天分组。 – eggyal 2013-03-01 11:54:09