SQL MariaDB中日期范围和时间范围之间的查询

SQL Query between a date range and a time range in MariaDB

我在编写此查询以提供任何结果时遇到问题。我也在使用 MariaDB。

SELECT CallDate AS Week_Of, AgentName,
        COUNT(*) AS TOTAL_Calls,
        SUM(case when Accepted = 'ANSWERED' then 1 ELSE 0 END) AS Answered,
        SUM(case when Accepted = 'NO ANSWER' then 1 ELSE 0 end) AS NoAnswer
FROM jshou_custom.afterhours
WHERE CallDate >= DATE_ADD(NOW(), INTERVAL -1 WEEK) 
AND TIME(CallDate) BETWEEN '17:00:00' AND '08:00:00'
GROUP BY AgentName

DATE_ADD 子句工作得很好,并在该时间间隔内给出结果,但只要我在 TIME 函数中添加,结果中就不会返回任何内容。 CallDate 格式是 2021-09-21 HH:MM:SS 我也尝试过使用 HOUR 代替 TIME,但它也 returns 没有。

我正在尝试从 DATE_ADD 子句中指定的范围内的任何一天提取呼叫。只要在 1700 到 0800 之间(下班后电话)。

我认为您需要像这样检查两个日期并调整每个日期使用的时间

WHERE 
(CallDate > DATE_ADD(CURDATE(), INTERVAL -7 DAY) AND TIME(CallDate) > '17:00:00')
OR
(CallDate > DATE_ADD(CURDATE(), INTERVAL -6 DAY) AND TIME(CallDate) < '08:00:00')