通过联接表计算一天的时间间隔

时间:2018-11-26 18:34:41

标签: sql postgresql

我是Postgres的初学者。我仍然主要通过解决问题来学习。

我有一个包含两个表的PostgreSQL数据库:trips(包含有关车辆每次旅行的信息)和gps_points(包含每次​​旅行所覆盖的GPS点)。

行程表包含列[id,start_time,end_time,vehicle_id]。 gps_points表包含[id,trip_id,纬度,经度]列。

如何编写查询以选择2018年1月1日(即在该日期开始和结束)完全包含的旅行中第4号车辆所覆盖的GPS点(纬度和经度)。

1 个答案:

答案 0 :(得分:0)

这应该可以解决问题:

select p.latitude
     , p.longitude
  from trips t
  join gps_points p
    on p.trip_id = t.id
 where t.vehicle_id = 4
   and date_trunc('day', t.start_time) = date '2018-01-01'
   and date_trunc('day', t.end_time) = date '2018-01-01'