postgresql 如何计算两个时间戳之间的差异(以天为单位)[重复]

p5cysglq  于 2023-06-05  发布在  PostgreSQL
关注(0)|答案(2)|浏览(215)

此问题已在此处有答案

How to calculate DATE Difference in PostgreSQL?(6个答案)
3天前关闭。

CREATE TABLE IF NOT EXISTS detailed(
customer_id smallint NOT NULL,
store_id smallint NOT NULL,
first_name varchar(45),
last_name varchar(45),
email varchar (50),
rental_id INTEGER NOT NULL,
rental_date timestamp without time ZONE,
inventory_id INTEGER NOT NULL
);

INSERT INTO detailed(
customer_id,store_id,first_name,last_name,email,rental_id,rental_date,inventory_id) 
SELECT 
customer.customer_id,
customer.first_name,
customer.last_name,
customer.email,
rental.rental_id,
rental.rental_date,
rental.inventory_id
FROM customer
INNER JOIN rental ON customer.customer_id=rental.customer_id
WHERE CURRENT_DATE - rental.rental_date > 90 AND rental.return_date = NULL;

我正在尝试用租赁时间超过90天的客户租赁信息填充一个表。为此,我从current_date中减去rental_date,并返回> 90天的结果。实现这一目标的最佳途径是什么?
我尝试使用DATEDIFF函数,但无法识别列'day'

kkbh8khc

kkbh8khc1#

最简单的方法是使用日期算术:

WHERE localtimestamp - rental_date > '90 days'
7cjasjjr

7cjasjjr2#

您可能希望使用postgres作为Date/Time Functions and Operators的一部分提供的age函数。然后使用extract,这样就可以只比较间隔的天数部分。
您的where predicate 可能如下所示

where extract(day from age(now(), rental.rental_date)) > 90 and rental.return = NULL;

相关问题