甲骨文中"BETWEEN OPERATOR"未包含的最后日期数据



我有一个oracle查询,用于获取2021年6月11日至2021年6日16日(每天(下午12点至凌晨12点之间的值。我下面的查询将收集11日至15日的信息,但不会获得16日的数据。我还有其他办法解决这个问题吗?非常感谢您抽出时间

SELECT TO_CHAR(datadate, 'dd/mm/yyyy') , 
ROUND(AVG(BATTERYVOLTAGE),2) AVGVOLTAGE  
FROM   MYTABLE 
WHERE  BATTERYVOLTAGE!= 0  
AND    to_char(datadate, 'hh24:mi:ss') BETWEEN '12:00:00' and '24:00:00'  
AND    DATADATE BETWEEN TO_DATE('11/06/2021', 'dd/mm/yyyy') 
AND  TO_DATE('16/06/2021', 'dd/mm/yyyy') 
GROUP BY TO_CHAR(datadate, 'dd/mm/yyyy') 
ORDER BY 1 
datadate BETWEEN to_date('11/06/2021', 'dd/mm/yyyy')
AND to_date('16/06/2021', 'dd/mm/yyyy')

如果在2021-06-16 00:00:00之前或之后,则仅包括CCD_ 1所在的行。不包括2021-06-16 00:00:00之后的所有内容。

这是一个常见的错误。不要将BETWEEN用于此类事情。请改用具有>=<的范围。

datadate >= to_date('2021-06-11 12:00:00', 'YYYY-MM-DD HH24:MI:SS')
AND datadate < to_date('2021-06-17 00:00:00', 'YYYY-MM-DD HH24:MI:SS')

如果有人想知道如何做到这一点。

更改上次日期的格式。

DATADATE BETWEEN TO_DATE('12/06/2021', 'dd/mm/yyyy') AND  (TO_DATE('22/06/2021', 'dd/mm/yyyy')+(1-1/24/60/60))

了解更多信息https://asktom.oracle.com/pls/apex/asktom.search?tag=date-在之间使用的查询

您在尝试查询日期和时间分隔时会遇到问题;如果您加入日期和时间并搜索日期时间值,如to_date('2021-06-11 09:00:00','YYYY-MM-DD HH24:MI:SS'(,则会更容易,您将得到的范围是从9开始的限制

最新更新