Postgres 中两个日期之间的周数

zac*_*ach 8 sql postgresql

我想计算客户成为客户的周数。目标是将其与客户进行购买的不同周数进行比较,以确定客户进行购买的周数百分比。

使用时间戳customer.created_at查找客户成为客户的周数的最佳方法是什么?换种说法,即当前周与客户注册周之间的周数差异。

从星期一开始的日历周是苹果对苹果的,具有客户购买的不同日历周。

mal*_*coa 6

AFAIK 这应该适用于所有情况

-您的日历周从星期一开始 -
两个日期至少从 05.01.1970(星期一)开始

Postgres:

SELECT
(
extract(epoch from date_trunc('week',now()::date))
-
extract(epoch from date_trunc('week','2019-12-20'::date))
)
/604800
Run Code Online (Sandbox Code Playgroud)

(其中 604800 是一周的秒数)


小智 5

SELECT (EXTRACT(days FROM (now() - customer.created_at)) / 7)::int;
Run Code Online (Sandbox Code Playgroud)

首先找出当前时间和客户的 created_at 时间戳之间的差异。然后你告诉 Postgres 给你以天为单位的差异,然后你可以将它除以 7 并将其四舍五入为一个整数。请注意,如果您不想要整数,则可以进行适当的转换。