Skip to content

Implement `generate_series` by @hiimtmac

Choose a tag to compare

@MihaelIsaev MihaelIsaev released this 06 Jan 19:03
· 190 commits to master since this release

Example 1

SwifQL.select(Fn.generate_series(1, 4)

will generate

SELECT generate_series(1, 4)

Example 2

SwifQL.select(Fn.generate_series("2019-10-01", "2019-10-04", "1 day"))

will generate

SELECT generate_series('2019-10-01', '2019-10-04', '1 day')

Example 3

SwifQL.select(Fn.generate_series("2019-10-01" => .date, "2019-10-04" => .date, "1 day"))

will generate

SELECT generate_series('2019-10-01', '2019-10-04', '1 day')

Example 4

let df = DateFormatter()
df.dateFormat = "yyyy-MM-dd HH:mm:ss"
df.timeZone = TimeZone(secondsFromGMT: 0)
SwifQL.select(Fn.generate_series(df.date(from: "2019-10-01 00:00:00")!, df.date(from: "2019-10-04 00:00:00")!, "1 day"))

will generate

SELECT 
    generate_series(
        (TIMESTAMP 'EPOCH' + make_interval(secs => 1569888000.0)), 
        (TIMESTAMP 'EPOCH' + make_interval(secs => 1570147200.0)), 
        '1 day'
    )