# generate\_series ## generate\_series (Integers) Generate a series of integer values. ``` SELECT * FROM TABLE( generate_series( , [, ] ) ``` #### Input Arguments | Parameter | Description | Data Types | | ----------------------------------------- | ------------------------------------------------------------------ | ---------- | | `` | Starting integer value, inclusive. | BIGINT | | `` | Ending integer value, inclusive. | BIGINT | | ` (optional, defaults to 1)` | Increment to increase or decrease and values that follow. Integer. | BIGINT | #### Output Columns | Name | Description | Data Types | | ----------------- | ---------------------------------------------------- | --------------- | | `generate_series` | The integer series specified by the input arguments. | Column\ | **Example** ``` heavysql> select * from table(generate_series(2, 10, 2)); series 2 4 6 8 10 5 rows returned. heavysql> select * from table(generate_series(8, -4, -3)); series 8 5 2 -1 -4 5 rows returned. ``` ## generate\_series (Timestamps) Generate a series of timestamp values from `start_timestamp` to `end_timestamp` . ```sql SELECT * FROM TABLE( generate_series( , , ) ) ``` **Input Arguments** | Parameter | Description | Data Types | | -------------- | ------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | | `series_start` | Starting timestamp value, inclusive. | TIMESTAMP(9) (Timestamp literals with other precisions will be auto-casted to TIMESTAMP(9) ) | | `series_end` | Ending timestamp value, inclusive. | TIMESTAMP(9) (Timestamp literals with other precisions will be auto-casted to TIMESTAMP(9) ) | | `series_step` | Time/Date interval signifying step between each element in the returned series. | INTERVAL | **Output Columns** | Name | Description | Output Types | | ----------------- | ------------------------------------------------------ | --------------------- | | `generate_series` | The timestamp series specified by the input arguments. | COLUMN\ | **Example** ``` SELECT generate_series AS ts FROM TABLE( generate_series( TIMESTAMP(0) '2021-01-01 00:00:00', TIMESTAMP(0) '2021-09-04 00:00:00', INTERVAL '1' MONTH ) ) ORDER BY ts; ts 2021-01-01 00:00:00.000000000 2021-02-01 00:00:00.000000000 2021-03-01 00:00:00.000000000 2021-04-01 00:00:00.000000000 2021-05-01 00:00:00.000000000 2021-06-01 00:00:00.000000000 2021-07-01 00:00:00.000000000 2021-08-01 00:00:00.000000000 2021-09-01 00:00:00.000000000 ```