我正在嘗試在 PostgreSQL 資料庫中查詢從上次運行開始已經過了間隔的行。用于此目的的主要列是processed_atastimestamptz和frequency(以分鐘為單位) as integer。
我在運算子上失敗了,因為他們中的很多人不能同時操作時間戳和整數。
有人可以提出一個可以解決這個問題的查詢嗎?非常感謝您的幫助
uj5u.com熱心網友回復:
從這里日期/時間運算子:
時間戳 間隔 → 時間戳
向時間戳添加間隔
時間戳 '2001-09-28 01:00' 間隔 '23 小時' → 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;
查詢獲取分鐘的整數值并將其轉換為可以添加到時間戳的分鐘間隔。
進一步的解釋,||是 Postgres 連接運算子 和::varchar,::interval正在轉換速記。
更新
我一直忘記make_*()日期/時間/間隔的功能
--A shorter version
select processed_at make_interval(mins => frequency);
保存所有鑄造。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/317100.html
標籤:PostgreSQL
