我有一个sql表:
Id | EntryTime | Duration
我想找出一天中两个小时之间的平均进入时间,考虑到这两个小时之间的所有记录。所以如果我的输入时间字段在两个小时之间:
(Edited) 12:00:00 10:00:00 08:00:00 10:00:00
那么返回的平均时间应该是:
10:00:00
根本不应该考虑日期,应该以字符串格式或只返回的方式返回日期 10:00:00 .
ycl3bljg1#
如果我没听错的话,你可以用间隔来表示这个;其思想是从时间戳中减去日期部分:这将为您提供一个表示时间部分的时间间隔,而不是您可以平均的时间间隔。假设您的表被调用 t 时间戳存储在列中 ts ,即:
t
ts
select avg(entry_time - entry_time::date) avg_time from t
db小提琴演示样本数据:
| entry_time | | :------------------ | | 2020-07-14 12:00:00 | | 2020-07-12 10:00:00 | | 2020-07-10 08:00:00 | | 2020-07-01 10:00:00 |
结果:
| avg_time | | :------- | | 10:00:00 |
k4aesqcs2#
尝试选择avg(entry\u time-entry\u time::date)::time(0)以避免秒分数。
2条答案
按热度按时间ycl3bljg1#
如果我没听错的话,你可以用间隔来表示这个;其思想是从时间戳中减去日期部分:这将为您提供一个表示时间部分的时间间隔,而不是您可以平均的时间间隔。
假设您的表被调用
t
时间戳存储在列中ts
,即:db小提琴演示
样本数据:
结果:
k4aesqcs2#
尝试选择avg(entry\u time-entry\u time::date)::time(0)以避免秒分数。