Мне нужно переписать код с сервера SQL на Vertica.
SELECT DATEADD(qq, DATEDIFF(qq, 0, GETDATE()), 0) - мне нужно получить первую дату квартала
SELECT DATEADD(qq, DATEDIFF(qq, 0, GETDATE()), 0)
SELECT DATEADD (dd, -1, DATEADD(qq, DATEDIFF(qq, 0, GETDATE()) +1, 0)) - последняя дата
SELECT DATEADD (dd, -1, DATEADD(qq, DATEDIFF(qq, 0, GETDATE()) +1, 0))
Попробуйте это:
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