Как получить первый и последний день квартала в Vertica - PullRequest
0 голосов
/ 23 марта 2020

Мне нужно переписать код с сервера SQL на Vertica.

SELECT DATEADD(qq, DATEDIFF(qq, 0, GETDATE()), 0) - мне нужно получить первую дату квартала

SELECT DATEADD (dd, -1, DATEADD(qq, DATEDIFF(qq, 0, GETDATE()) +1, 0)) - последняя дата

1 Ответ

1 голос
/ 23 марта 2020

Попробуйте это:

WITH 
input(the_date) AS (
          SELECT CURRENT_DATE
UNION ALL SELECT DATE '2020-05-03'
)
SELECT
  the_date
, TRUNC(the_date,'q')::DATE                   AS begin_quarter
, LAST_DAY(ADD_MONTHS(TRUNC(the_date,'q'),2)) AS end_quarter
FROM input;
-- out   the_date  | begin_quarter | end_quarter 
-- out ------------+---------------+-------------
-- out  2020-03-23 | 2020-01-01    | 2020-03-31
-- out  2020-05-03 | 2020-04-01    | 2020-06-30
...