我喜歡按天,月份分組結果。我的問題是,在我的生意中,這一天從2PM(14:00:00)開始,並於上午8:00(8:00:00)結束。MYSQL:選擇天數與自定義開始和結束小時的天數
這裏的目標是統計在一天中註冊的唯一客戶的數量。
我的表是這樣的:
id customer join_date leave_date duration
6247 4043035 2013-06-07 14:32:00 2013-06-07 14:57:24 1524
6248 4006087 2013-06-07 14:32:11 2013-06-07 14:41:18 547
6249 4020103 2013-06-07 14:32:30 2013-06-07 15:24:32 3122
6250 4020103 2013-06-07 14:32:30 2013-06-07 14:41:18 528
6251 4020103 2013-06-07 14:32:30 2013-06-07 15:55:33 4983
6252 4049611 2013-06-07 14:34:14 2013-06-07 17:14:25 9611
6253 4049611 2013-06-07 14:34:14 2013-06-07 14:57:15 1381
6254 4046774 2013-06-07 14:36:21 2013-06-07 14:41:18 297
6255 4048402 2013-06-07 14:37:51 2013-06-07 14:41:18 207
6256 4006073 2013-06-07 14:39:54 2013-06-07 14:42:19 145
6257 4022477 2013-06-07 14:40:40 2013-06-07 14:46:44 364
6258 4049923 2013-06-07 14:42:08 2013-06-07 14:57:09 901
6259 4018158 2013-06-07 14:45:05 2013-06-07 14:45:43 38
6260 4010012 2013-06-07 14:45:39 2013-06-07 14:46:44 65
6261 4018158 2013-06-07 14:45:43 2013-06-07 14:53:16 453
用 「正常」 的日子,我的要求是這樣的:
SELECT count(distinct l.customer) nbj,
DAY(l.join_date) jour,
MONTH(l.join_date) mois,
str_to_date(l.join_date,'%Y-%m-%d') ordre
FROM log_waitingtime l
GROUP BY DAY(l.join_date), MONTH(l.join_date)
ORDER BY ordre ASC
它工作正常。
我已經嘗試了很多東西: http://forums.mysql.com/read.php?10,202789,202807 http://www.artfulsoftware.com/infotree/qrytip.php?id=819
我認爲這些解決方案複雜(我甚至不明白一切
那麼,有沒有一種更簡單的方式來實現這一目標英寸SQL
之間的持續時間在一天登記的客戶我已經做了另外一個測試用'哪裏join_date> ='2013-06-12 14:00:00'和join_date <='2013-06-13 8:00:00''(Juste不同於以前的測試日)。查詢的結果是386. Fthiella解決方案返回395.我認爲仍然存在問題。我會做進一步的測試。 – Youpsla
@Youpsla我將時間推遲14小時,所以如果加入日期是2013-06-30 14:00:00,它將被計爲2013-06-30 00:00:00,如果加入日期是2013年 - 07-01 08:00:00它會計爲2013-06-30 18:00:00,我希望這是你正在尋找的。如果它們存在,您可能希望從8AM到2PM排除連接日期。 – fthiella
@dianuj我明白爲什麼我有不同的結果。例如,表中有客戶在2PM(13:52:24)之前有join_date。我喜歡數這些人。然後,我認爲我可以在上午8點開始,第二天在7點59分59秒結束。那麼我想我可以用'INTERVAL 8 HOUR'替換'INTERVAL 14 HOUR'? – Youpsla