我试图查询PostgreSQL数据库的行,其中间隔已从上次运行。此目的的主要列是processed_at
作为timestamptz
,frequency
(以分钟计)作为integer
。
我失败的操作符,因为没有很多可以一起操作时间戳&整数。
有人能提出一个问题来解决这个问题吗?非常感谢您的帮助
From here日期/时间运算符:
timestamp + interval→timestamp
添加时间戳
时间戳'2001-09-28 01:00' +时间间隔'23 hours'→2001-09-29 00:00:00
select now() + (10::varchar || ' min')::interval;
?column?
-------------------------------
2021-10-15 09:05:37.927163-07
--Or in your case. If I'm following you are adding the interval.
select processed_at + (frequency::varchar || ' min')::interval;
查询接受minutes的整数值,并将其转换为可添加到时间戳中的分钟间隔。
进一步解释,||
是Postgres的连接操作符,::varchar
,::interval
是转换简写。
我总是忘记日期/时间/间隔的make_*()
函数
--A shorter version
select processed_at + make_interval(mins => frequency);
保存所有类型转换。