PostgreSQL group by 24 hour period noon to noon

牧云@^-^@ 提交于 2019-12-24 03:06:46

问题


Using PostgreSQL I need to be able to aggregate data, as the title suggests, in 24 hour periods but from noon to noon. The data is collected every 5 minutes over a period of several weeks and I want to average the readings over 24 hour periods from 12:00 noon of first day to 12:00 noon of the next day until the end of the data.

For a more standard midnight to midnight grouping I can use the example below, which works just fine, but I can't see work out how to adapt this to the noon-noon time-span I need.

group by date_trunc('day', <DateCol>)

PostgreSQL is relatively new to me, and if I was going to do this in SQL Server I'd use:

dateadd(hour, (datepart(hour, <DateCol>)/12)*12, dateadd(day, 0, datediff(day, 0, <DateCol>)))

As far as I can tell from reading the documentation at http://www.postgresql.org there is no equivalent to date add. Is there a way to do what is required within PostgreSQL?


回答1:


Try grouping by day on date - 12hours:

group by date_trunc('day', <DateCol> - INTERVAL '12 hours') 


来源:https://stackoverflow.com/questions/22326978/postgresql-group-by-24-hour-period-noon-to-noon

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!