仅按日期部分的 Postgres 查询时间戳

Postgres query timestamp by datepart only

我正在使用它来尝试获取时间戳为今天的所有事件

SELECT systemuserid,ondate from auditlog 
WHERE ondate::date = NOW()::date

性能似乎很差,超过 2 分钟。我在 ondate 上有一个索引。

有没有更有效的方法?

谢谢

使用范围条件:

select *
from auditlog
where ondate >= current_date
  and ondate < current_date + 1;

current_date 将在午夜转换为时间戳,因此 ondate => current_date 将包括“今天”的所有内容。

并且条件 ondate < current_date + 1 将排除时间戳为明天(午夜)或更晚的行。