Last day of most recent financial quarter in Snowflake

Was not sure if you want the last day of current quarter or prior quarter, but this should be enough to get where you want to go:

SELECT current_date today,
    date_trunc('quarter', today) as cur_qrt,
    dateadd('day', -1, cur_qrt) as last_day_of_prior_qrt,
    dateadd('day', -1, dateadd('quarter', 1, cur_qrt)) as last_day_of_current_qrt;
TODAY CUR_QRT LAST_DAY_OF_PRIOR_QRT LAST_DAY_OF_CURRENT_QRT
2022-01-19 2022-01-01 2021-12-31 2022-03-31

Thus last day of prior quarter for any day is:

dateadd('day', -1, date_trunc('quarter', DAY)) as last_day_of_prior_qrt,

Hmm, how you framed the question, I don't see how your dates are what you want.. BUT if they are then that is good.

SELECT 
    to_date(column1) as day,
    IFF( extract(month, day) in (1, 4, 7, 10),
        add_months(dateadd('day', -1, date_trunc('quarter', day)), -2),
        add_months(dateadd('day', -1, date_trunc('quarter', day)), 1) 
    ) as last_day_of_prior_qrt,
    date_trunc('quarter', day) as cur_qrt,
    dateadd('day', -1, date_trunc('quarter', day)) as sim_sqt
 from values 
    ('2021-01-04'),('2021-02-04'),('2021-03-04'),('2021-04-04'),('2021-05-04'),('2021-06-04'),('2021-07-04'),('2021-08-04');

gives:

DAY LAST_DAY_OF_PRIOR_QRT CUR_QRT SIM_SQT
2021-01-04 2020-10-31 2021-01-01 2020-12-31
2021-02-04 2021-01-31 2021-01-01 2020-12-31
2021-03-04 2021-01-31 2021-01-01 2020-12-31
2021-04-04 2021-01-31 2021-04-01 2021-03-31
2021-05-04 2021-04-30 2021-04-01 2021-03-31
2021-06-04 2021-04-30 2021-04-01 2021-03-31
2021-07-04 2021-04-30 2021-07-01 2021-06-30
2021-08-04 2021-07-31 2021-07-01 2021-06-30

and given 4th Jan 2021 is in the 2021 Q1 I don't see how the "prior" quarter id 2020 Q3 and thus the last day of is 2020-10-31, But again if that is the results you want..