Sql Rails:如何通过从datetime列中减去列值来查询行?
使用PostgreSQL运行Rails 4 我有一个列存储datetime值,另一个列存储一个整型值,表示以秒为单位的时间跨度 如何查询datetime列值减去整数timespan值的行早于当前时间?datetime?你是说我想?由于缺乏信息,我将进一步假设此表:Sql Rails:如何通过从datetime列中减去列值来查询行?,sql,ruby-on-rails,postgresql,datetime,Sql,Ruby On Rails,Postgresql,Datetime,使用PostgreSQL运行Rails 4 我有一个列存储datetime值,另一个列存储一个整型值,表示以秒为单位的时间跨度 如何查询datetime列值减去整数timespan值的行早于当前时间?datetime?你是说我想?由于缺乏信息,我将进一步假设此表: CREATE TABLE tbl ( tbl_id serial PRIMARY KEY ,ts timestamp ,seconds integer ); 其中datetime列值减去整数timesp
CREATE TABLE tbl (
tbl_id serial PRIMARY KEY
,ts timestamp
,seconds integer
);
其中datetime列值减去整数timespan值的时间早于当前时间
查询很简单:
SELECT *
FROM tbl
WHERE ts - seconds * interval '1 sec < now();
但最好将其转换为表达式:
SELECT *
FROM tbl
WHERE ts < now() + seconds * interval '1 sec;
是Postgres的标准表格,您也可以使用
最近的相关回答:
日期时间?你是说我想?由于缺乏信息,我将进一步假设此表:
CREATE TABLE tbl (
tbl_id serial PRIMARY KEY
,ts timestamp
,seconds integer
);
其中datetime列值减去整数timespan值的时间早于当前时间
查询很简单:
SELECT *
FROM tbl
WHERE ts - seconds * interval '1 sec < now();
但最好将其转换为表达式:
SELECT *
FROM tbl
WHERE ts < now() + seconds * interval '1 sec;
是Postgres的标准表格,您也可以使用
最近的相关回答:
以下是与您所问内容相当的Rails
Model.where(%q{datetime_col - seconds_col * interval '1 second' < now()})
无论您使用的模型值是什么,datetime\u col,seconds\u col。这里是Rails,与您所询问的内容相当
Model.where(%q{datetime_col - seconds_col * interval '1 second' < now()})
对于模型的任何值,使用的是datetime\u col,seconds\u col。我建议从我的答案中复制sargable表达式,而不是从次答案中复制sargable表达式。我建议从我的答案中复制sargable表达式,而不是从次答案中复制sargable表达式。