PostgresSQL:求平均停留时间--timestamp的日期相减

PostgresSQL:求平均停留时间–timestamp的日期相减

业务需求: 车辆信息表(car_info )记录了一辆车进入停车场时间(checkin_time)和离开停车场的时间(checkout_time),要求出这个停车所有车辆停留的平均时间

car_info表结构:

TablesAreCool
col 3 isright-aligned$1600
col 2 iscentered$12
zebra stripesare neat$1
idcar_numcheckin_timecheckout_timebdid
1沪A123468/20/2018 10:58:138/21/2018 14:58:2604KI08
2沪A123458/20/2018 10:57:588/21/2018 11:59:0004KI08
3沪A789108/20/2018 13:52:088/21/2018 14:58:3204KI08
...

其中
“checkin_time” timestamp(0),
“checkout_time” timestamp(0),

SQL代码

--EXTRACT
SELECT
    EXTRACT (DAY FROM "avg"(P .staytime)) AS avg_day,
    EXTRACT (HOUR FROM "avg"(P .staytime)) AS avg_hour,
    EXTRACT (MINUTE FROM "avg" (P .staytime)) AS avg_minute,
    P .bdid
FROM
    (
        SELECT
            checkout_time - checkin_time AS staytime,
            bdid
        FROM
            parkingsystem.car_info
        WHERE
            bdid = '04KI08'
    ) P
GROUP BY
    P .bdid

执行结果

平均停留时长为0天1小时17分
运行该SQL的结果

知识点

直接用两个timestamp值相减得到一个interval值,使用EXTRACT函数获取年月日等
extract函数格式:extract (field from source)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值