数据日期’${data_dt}’
格式如:‘20230112’
上日
to_date('${data_dt}','yyyymmdd')-1
本月初
date(date_trunc('month',to_date('${data_dt}','yyyymmdd')))
本月末
date(date_trunc('month',to_date('${data_dt}','yyyymmdd'))+interval'1 months'-interval'1 day')
上月末
date(date_trunc('month',to_date('${data_dt}','yyyymmdd'))-interval'1 day')date(date_trunc('month',to_date('${data_dt}','yyyymmdd')))-1
上季末
date(date_trunc('quarter',to_date('${data_dt}','yyyymmdd'))-interval'1 day')
上年末
date(date_trunc('year',to_date('${data_dt}','yyyymmdd'))-interval'1 day')
去年同期
date(to_date('${data_dt}','yyyymmdd')-interval'12 MONTH')date(to_date('${data_dt}','yyyymmdd')-interval'1 YEAR')
当年已过天数
(to_date('${data_dt}','yyyymmdd')-(date(date_trunc('year',to_date('${data_dt}','yyyymmdd')))-1))
EXTRACT日期转换
取月份 EXTRACT 的结果为duoble 类型无法参与运算,可以使用cast将 EXTRACT 的结果转为INT类型
cast(EXTRACT(MONTHFROMdate'${data_dt}')asint)
当月第几天
extract(dayfrom to_date('${data_dt}','yyyymmdd'))
当年第几周
extract(week from to_date('${data_dt}','yyyymmdd'))
当年第几月
extract(monthfrom to_date('${data_dt}','yyyymmdd'))
本周第一天
date(date_trunc('week',to_date('${data_dt}','yyyymmdd')))as week_one_day
本周末
date(date_trunc('week',to_date('${data_dt}','yyyymmdd'))+interval'1 week'-interval'1 day')as week_last_day
-- 2date(date_trunc('week',to_date('${data_dt}','yyyymmdd'))+interval'6 day')as week_last_day
本周第几天
--1
cast when cast(extract(dow from to_date('${data_dt}','yyyymmdd'))asint)=0then7else cast(extract(dow from to_date('${data_dt}','yyyymmdd'))asint)endas day_of_week
--2
to_date('${data_dt}','yyyymmdd')-date(date_trunc('week',to_date('${data_dt}','yyyymmdd')))+1
标签:
sql
postgresql
本文转载自: https://blog.csdn.net/coding0820/article/details/128997662
版权归原作者 coding0820 所有, 如有侵权,请联系我们删除。
版权归原作者 coding0820 所有, 如有侵权,请联系我们删除。