0


PostgreSQL常见日期转换

数据日期’${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 所有, 如有侵权,请联系我们删除。

“PostgreSQL常见日期转换”的评论:

还没有评论