You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将平均时间值转为整数并将时长向上取整为天数(如72天32h转73)

问题需求

需要将SQL查询结果中的平均时间值转换为整数,且包含小时的时长需向上取整为天数(例如72 days 32:01:52.694268转换为73)。

原始查询SQL

select day_of_week, avg(booking_time)
from(SELECT check_in_date - booked_at as booking_time, EXTRACT (dow FROM 
    check_in_date)day_of_week
    FROM bookings 
    ) as table1
where EXTRACT(epoch FROM booking_time)/3600 > 0
group by day_of_week
order by avg(booking_time) desc;

原始查询输出

day_of_weekavg
4.072 days 32:01:52.694268
5.057 days 34:00:09.228322
3.050 days 26:30:19.840091
6.041 days 33:12:01.010234
0.036 days 14:35:36.59173
2.034 days 28:15:35.384787
1.031 days 10:52:57.718717

解决方案

通过EXTRACT(epoch ...)将平均时间间隔转换为总秒数,再除以一天的秒数(3600*24)得到带小数的天数,最后用ceil()函数向上取整即可实现需求。修改后的SQL如下:

select 
    day_of_week,
    ceil(EXTRACT(epoch FROM avg(booking_time)) / (3600 * 24)) as avg_booking_days
from(
    SELECT 
        check_in_date - booked_at as booking_time, 
        EXTRACT(dow FROM check_in_date) as day_of_week
    FROM bookings 
) as table1
where EXTRACT(epoch FROM booking_time)/3600 > 0
group by day_of_week
order by avg_booking_days desc;

处理后预期输出

day_of_weekavg_booking_days
4.073
5.059
3.052
6.043
0.037
2.036
1.032

内容的提问来源于stack exchange,提问作者vikwillberg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 20:15:55