1、求自然日、上一自然日、下一自然日、本周初/末、本月初/末、本季初/末、本年初/末、一月/三月/六月/一年前等
select
calendar_day AS CALENDAR_DAY, --'自然日(日期型)'
regexp_replace(calendar_day,'-','') AS CALENDAR_DT, --'自然日(数值型)'
date_add(calendar_day, -1) AS LAST_CALENDAR_DT, --'上一自然日'
date_add(calendar_day, 1) AS NEXT_CALENDAR_DT, --'下一自然日'
date_add(calendar_day,7-cast(default.date_format(calendar_day, 'u') as int)) AS WEEKEND_DT, --'本周末日期'
date_sub(default.add_months(calendar_day, 1), day(calendar_day)) AS MONTHEND_DT, --'本月末日期'
date_sub(default.add_months(to_date(concat(year(calendar_day),'-01-01')), 3*cast(ceil(month(calendar_day)/3) as int)), 1) AS QUARTEND_DT, --'本季末日期'
to_date(concat(year(calendar_day),'-12-31')) AS YEAREND_DT, --'本年末日期'