Генерация X дат между 2 датами - PullRequest
0 голосов
/ 27 сентября 2019

Есть ли простой способ генерировать почасовые даты между двумя указанными датами?

Например, если я пытаюсь сделать последние 24 часа, есть ли простой способ получить каждый час между 9 /25/2019 и 26.09.2009?e.g. : 9-25-2019 1pm, 9-25-2019 2pm, etc.

Это также может распространяться на дни -> 9-20-2019, 9-21-2019, 9-22-2019 и т. Д.

Я вижу, что есть способиспользуйте generate_series.Как это будет работать в этом случае?

Спасибо!

1 Ответ

0 голосов
/ 27 сентября 2019
select (DATEADD(hour, (generate_series), '9/27/2019'::timestamp))::timestamp from generate_series(1,datediff(hour,'9/27/2019','9/28/2019'),1)

для заинтересованных.Я получил это работать с помощью этого подхода.Если есть лучший способ, дайте мне знать!

обновление: это полный код

with daterange as (
             select (DATEADD(hour, (generate_series), '9/27/2019'::timestamp))::timestamp  as datetime
             from generate_series(1,datediff(hour,'9/27/2019','9/28/2019'),1)
             ),

             stringdaterange as (
             select to_char(datetime::timestamp, 'Mon-dd hh:00 pm') as datelabel 
             from daterange
             )
             select * from stringdaterange
...