我第一次使用PostgreSQL,我有点陷入任务。我试图找出多少天前有人,比如客户中的客户,是通过电话打来的。我在客户端表中创建了一个名为" lastcall"的列。我想要定义为NOW() - createdAt(其中createdAt是调用中的一个列,它是带有时区的时间戳)。从我看到的语法,这可能是合理的,但我不知道如何使它100%合法。
SELECT lastcall (NOW()-A≥0) as T
FROM Clients
WHERE A is createdAt
FROM Calls
有关将此变为现实的任何建议都表示赞赏!此外,我相信我们需要对createdAt
列进行排序,以便我们可以找到最近通话和现在之间的距离 - 我也有点迷失。
此处的两个表格为Clients
和Calls
。客户端有60列属性来描述客户端,包括主键ID。客户端(id)是调用列clientid的外键。呼叫有7列,'id','clientname', 'clientphone', 'clientid','createdAt','updatedAt','overview'.
'createdAt'
和'updatedAt'
是带时区的时间戳。 'id'
是主键。除了clientid和Clients(id)之外,没有其他列相关。
答案 0 :(得分:0)
要获得postgres中的当前日期,请使用CURRENT_DATE
尝试类似这样的事情..(它假设客户端和呼叫上有一个连接列关联表格)
select current_date-lc.createdAt::date as T
from Clients c
inner join Calls lc
on c.id=lc.clientid
根据您的更新,如果您只需要通过clientid和最后一次通话,那么您可以这样做..
select clientid,current_date-createdAt::date
from Calls