选择在Postgres中最多30秒前创建的行

时间:2018-07-15 15:29:35

标签: sql database postgresql

说我想查找最近下的订单。我正在尝试以下语句:

SELECT * FROM orders WHERE time < now() - interval '30 second';

此方法不起作用(它不会选择任何行。)尽管可以进行以下操作:

SELECT * FROM orders WHERE time < now();

我需要使用固定时间变量吗?喜欢:

SELECT * FROM orders WHERE time < '2018-07-01 12:00:00' - interval '30 second';

我猜我不应该在语句中使用now(),因为它在操作过程中可能会发生变化...

1 个答案:

答案 0 :(得分:0)

我相信您的比较方向错误:

SELECT *
FROM orders
WHERE time > now() - interval '30 second';

这将返回最近30秒内的值。

这假设time的日期类型适合进行比较。