41 lines
923 B
MySQL
41 lines
923 B
MySQL
|
WITH
|
||
|
--startign month
|
||
|
m as (
|
||
|
SELECT
|
||
|
*
|
||
|
FROM
|
||
|
(
|
||
|
VALUES
|
||
|
(1,1,1)
|
||
|
,(2,2,1)
|
||
|
,(3,3,1)
|
||
|
,(4,4,2)
|
||
|
,(5,5,2)
|
||
|
,(6,6,2)
|
||
|
,(7,7,3)
|
||
|
,(8,8,3)
|
||
|
,(9,9,3)
|
||
|
,(10,10,4)
|
||
|
,(11,11,4)
|
||
|
,(12,12,4)
|
||
|
) X (cm,fm,fq)
|
||
|
)
|
||
|
INSERT INTO
|
||
|
evt.fspr
|
||
|
SELECT
|
||
|
--TO_CHAR(gs.d,'YYYY.MM.DD')::ltree t1
|
||
|
(
|
||
|
--year
|
||
|
to_char(extract(year from gs.d),'FM0000')
|
||
|
--quarter
|
||
|
||'.'||to_char(m.fq,'FM00')
|
||
|
--month
|
||
|
||'.'||to_char(m.fm,'FM00')
|
||
|
--day
|
||
|
||'.'||to_char(extract(day from gs.d),'FM00')
|
||
|
)::ltree t2
|
||
|
,tstzrange(gs.d,gs.d + '1 month'::interval) r
|
||
|
FROM
|
||
|
generate_series('2018-01-01 00:00'::timestamptz,'2099-12-01 00:00'::timestamptz,'1 month') gs(d)
|
||
|
INNER JOIN m ON
|
||
|
m.cm = extract(month from gs.d)
|