我正在体验一种挑战,我似乎无法控制自己的头脑,而不是在那里有任何经验。我有一些汽车修理/喷雾舱,我想知道有多少天没有使用。这里有一个简单的表格例子shwoiung总数为20只一个托架,我会永远在同一时间查询只是一个托架,除非有这样的一个聪明的办法多:单独行上两列值之间的天数
bayID | sDate | eDate
------+------------+------------
1 | 2014-09-06 | 2014-09-13
1 | 2014-09-17 | 2014-09-21
1 | 2014-09-27 | 2014-09-30
1 | 2014-10-30 | 2014-10-13
我一直在DATEDIFF读了,但是承认并不真正理解它,或者它或者mySQL。我的问题是我怎样才能得到第一个eDate和第二个sDate,第二个eDate和...等等之间的天数......我的脑袋开始流血并且感到疼痛,我期待着任何帮助......对不起,不是一个巨大的技术人员如此长的英语,如果可能的答案......这就是我lloking为:
bayID | sDate | eDate availFor
------+------------+------------+---------
1 | 2014-09-06 | 2014-09-13 3
1 | 2014-09-17 | 2014-09-21 5
1 | 2014-09-27 | 2014-09-30 0
1 | 2014-10-30 | 2014-10-13
你明显试图使用MySQL的,但如果你想获得以这些时间段的细节,你可以用[窗口功能]实现这一目标(HTTP:您可以使用相关子查询解答一下://www.postgresql.org/docs/current/static/functions-window.html)(例如本例中的LEAD或LAG)和支持它的RDBMS,如PostgreSQL或SQL Server。 – Bruno 2014-09-06 14:32:58
这听起来像是一种解决方案,但它恐怕会在高空传递。我会考虑这一点,但希望这是有道理的。 – Filious 2014-09-06 14:35:56
你的意思是'2014-09-30'而不是'2014-10-30' do availFor = 0吗?开始/结束之间也有问题。如果你只在2014-09-13和2014-09-17之间计算3天,这意味着在2014-09-30和2014-09-30之间应该有-1天(假设你的意思是)。 – Bruno 2014-09-06 14:44:54