我需要只能在指定時間之間提取數據,而不管日期範圍有多大。例如,僅在日期範圍內的每天10:00至11:00之間檢索記錄。MySQL TIME函數意外的結果
我想我已經確定了它,直到用戶指定了一個跨越午夜的時間並且它沒有返回任何數據。
這是我的查詢沒有返回數據(使用日期和時間函數):
SELECT
an.descr_agente as Agent,
COUNT(if(ql.queue IN (9100, 9102, 9104),1, null)) as UK,
COUNT(if(ql.queue IN (9200, 9202, 9204),1, null)) as AU,
COUNT(if(ql.queue IN (9400, 9402, 9404),1, null)) as CA
FROM queue_log ql
LEFT JOIN agenti_noti an
ON ql.agent = an.nome_agente
WHERE ql.partition = 'P001'
AND DATE(from_unixtime(ql.time_id)) BETWEEN '2017-10-03' AND '2017-10-04'
AND TIME(from_unixtime(ql.time_id)) BETWEEN '16:00' AND '01:01'
AND ql.verb IN ('COMPLETECALLER','COMPLETEAGENT','TRANSFER')
AND an.descr_agente IS NOT NULL
GROUP BY an.descr_agente
如果我將其更改爲下面,它的工作原理,但當然會有一旦用戶的增加不正確的數據日期範圍超過1天。
SELECT
an.descr_agente as Agent,
COUNT(if(ql.queue IN (9100, 9102, 9104),1, null)) as UK,
COUNT(if(ql.queue IN (9200, 9202, 9204),1, null)) as AU,
COUNT(if(ql.queue IN (9400, 9402, 9404),1, null)) as CA
FROM queue_log ql
LEFT JOIN agenti_noti an
ON ql.agent = an.nome_agente
WHERE ql.partition = 'P001'
AND from_unixtime(ql.time_id) BETWEEN '2017-10-03 16:00' AND '2017-10-04 01:01'
AND ql.verb IN ('COMPLETECALLER','COMPLETEAGENT','TRANSFER')
AND an.descr_agente IS NOT NULL
GROUP BY an.descr_agente
我假設TIME函數不會自動重疊到第二天。我應該怎麼做才能正常工作?
啊我希望我不會像那樣分裂它。用戶界面是HTML/PHP和Javascript,我猜想我只需添加更多的檢查來添加它。 – Stephen