ARRAY_GENERATE_SERIES (Time-based)

Applies to: ✅ Data 360 SQL ✅ Tableau Hyper API

Generate an array of time-based values, from start to stop with a given step size.

Syntax 

1ARRAY_GENERATE_SERIES(<start>, <stop>, <step>)

Arguments 

Required 

  • <start>: The start value of the series. Can be of type DATE, TIMESTAMP, or TIMESTAMP WITH TIME ZONE.
  • <stop>: The end value of the series. Must be of the same type as <start>.
  • <step>: The step size as an INTERVAL. Unlike the numerical version of ARRAY_GENERATE_SERIES, the step size is always required for time-based series.

Returns 

Returns an ARRAY containing the generated series of values.

Considerations 

This function is equivalent to the generate_series (Time-based) function, with the only difference that it returns an array instead of a set of rows. Read the documentation on generate_series (Time-based) for more details. All considerations also apply to array_generate_series with the following differences:

Examples 

Basic Usage with Dates 

Generate an array of months between two dates.

1SELECT ARRAY_GENERATE_SERIES('2017-01-01'::date, '2017-03-01'::date, '1 month'::interval);

returns ["2017-01-01","2017-02-01","2017-03-01"]

Usage with Timestamps 

1SELECT ARRAY_GENERATE_SERIES('2017-01-01 01:02:03'::timestamp, '2017-03-01 01:02:03'::timestamp, '1 month'::interval);

returns ["2017-01-01 01:02:03","2017-02-01 01:02:03","2017-03-01 01:02:03"]

Additional Examples 

Take a look at the generate_series examples for additional examples. They also apply to array_generate_series.

Related Documentation 

DID THIS ARTICLE SOLVE YOUR ISSUE?
Let us know so we can improve!