H2数据库如何筛选最近5分钟的日期时间记录?
解决H2 SQL筛选最近5分钟记录的问题
你的问题出在**CURRENT_DATE()**这个函数上——它只返回当前的日期(比如2023-03-05),不带时分秒信息。所以你用DATEADD('MINUTE',-5, CURRENT_DATE())得到的其实是当天的0点0分减去5分钟,也就是前一天的23:55,这自然会把当天所有符合日期的记录都查出来,不管时间过了多久。
换成**CURRENT_TIMESTAMP()**就能解决问题,它会返回包含当前日期和精确时间的时间戳,和你的ERRDATE字段格式匹配。正确的SQL语句是:
SELECT * FROM LOG WHERE ERRDATE > DATEADD('MINUTE', -5, CURRENT_TIMESTAMP())
另外H2也支持用INTERVAL的写法,效果一样,可能更直观:
SELECT * FROM LOG WHERE ERRDATE > CURRENT_TIMESTAMP() - INTERVAL '5' MINUTE
这两种写法都能精准筛选出当前时间往前推5分钟内的所有记录,你可以试试。
内容的提问来源于stack exchange,提问作者Morkus
相关产品推荐
相关产品推荐

