published
- это timestamp with time zone
, сохраненное как UTC.
gps_coordinates
- это geography(Point,4326)
.
SELECT
ST_MakeLine(pp.Gps_Coordinates::geometry ORDER BY pp.Published) As DailyRoute,
pp.Published::date As DayOf
FROM xxxx As pp
WHERE pp.Id = 'xxxxxxxx'
GROUP BY DayOf
Я пытаюсь получить все данные для идентификатора за день, но вчасовой пояс человека, который его запросил, поэтому, если в CST все, что произошло между 00:00:00 CST и 23:59:59 CST, или если в EST все, что произошло между 00:00:00 EST и 23:59:59 EST.
Каков наилучший способ переработать этот запрос, чтобы получить данные с использованием этой информации?
Когда я попытался:
SELECT
ST_MakeLine(pp.Gps_Coordinates::geometry ORDER BY pp.Published) As DailyRoute,
pp.Published::date AT TIME ZONE 'CST' As DayOf
FROM xxxx As pp
WHERE pp.Id = 'xxxxxxxx'
GROUP BY DayOf
День недели приводит к 2018-11-25 18:00:00
, это не то, что я хочу.Я хочу сгруппировать все по дням в зависимости от времени суток в местном часовом поясе.