Postgresql 忽略时间戳postgres中的秒数
我每1分钟运行一次cron作业,用于通知用户事件Postgresql 忽略时间戳postgres中的秒数,postgresql,Postgresql,我每1分钟运行一次cron作业,用于通知用户事件 select * from events where event_start = now() - interval '30 minutes' 因此,我可以在事件发生30分钟之前向用户发送通知 问题是事件开始是一个时间戳字段,因此如果秒数存在差异,它将不起作用,因此如何可以忽略秒数部分。您可以使用date\u trunc()删除秒数: select * from events where event_start = date_trunc('
select * from events where event_start = now() - interval '30 minutes'
因此,我可以在事件发生30分钟之前向用户发送通知
问题是事件开始是一个时间戳字段,因此如果秒数存在差异,它将不起作用,因此如何可以忽略秒数部分。您可以使用
date\u trunc()
删除秒数:
select *
from events
where event_start = date_trunc('second', now()) - interval '30' minutes
手册中的更多详细信息:要忽略秒数,可以使用函数 函数date_trunc在概念上类似于trunc函数 对于数字 日期(字段,源[,时区])源是一个值表达式 时间戳、带时区的时间戳或时间间隔类型。(价值观) 类型日期和时间自动转换为时间戳或间隔, 字段选择截断输入的精度 价值返回值的类型类似于timestamp,timestamp with 时区或时间间隔,并且它具有所有较小的字段 显著性高于设置为零的所选值(或一,对于日和 月) 字段的有效值为:
- 微秒
- 毫秒
- 第二
- 分钟
- 时辰
- 一天
- 周
- 月
- 四分之一
- 年
- 十年
- 世纪
- 千禧年
SELECT *
FROM events
WHERE event_start = date_trunc('minute', now()) - INTERVAL '30' MINUTE;
选中此项:
SELECT *
FROM events
WHERE event_start = date_trunc('minute', now()) - INTERVAL '30' MINUTE;