[英]Rails: How to query for rows by subtracting column value from datetime column?
在PostgreSQL上運行Rails 4。
我有一列存儲一個日期時間值,另一列存儲一個整數值,該整數值表示以秒為單位的時間跨度。
如何查詢datetime列值減去整數(時間跨度)值比當前時間早的行?
這就是您要問的Rails等效項
Model.where(%q{datetime_col - seconds_col * interval '1 second' < now()})
對於您使用的Model
, datetime_col
, seconds_col
任何值。
datetime
? 你的意思是我假設的timestamp
? 我將進一步假設該表(由於缺乏信息):
CREATE TABLE tbl (
tbl_id serial PRIMARY KEY
,ts timestamp
,seconds integer
);
datetime列值減去整數(時間跨度)值的時間比當前時間早?
查詢很簡單:
SELECT *
FROM tbl
WHERE ts - seconds * interval '1 sec < now();
但是最好將其轉換為可修飾的表達式:
SELECT *
FROM tbl
WHERE ts < now() + seconds * interval '1 sec;
now()
與標准格式CURRENT_TIMESTAMP
(也可以使用now()
的Postgres等效。
最近的相關答案:
如何在PostgreSQL中將日期和秒字段轉換為時間戳字段?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.