PostgreSQL
pg+debezium+kafka实时同步
三机patroni+etcd高可用
基于Python实现大批量dataframe格式数据快速存入postgresql
python数据批量插入postgreSQL数据库
pg 插件扩展(extension)开发
psql 连接数据库的方法
pg 函数返回表、数据集、结果集
pg 日志记录 异常处理
pg 作业调度器 pg_timetable
pg 查询对象的权限
正则表达式去除注释
pg 数据库高可用及负载均衡JDBC参数
pg 生成节假日
pg_recvlogical 解析日志
pg 查看锁表
pg upsert写法
pg 查看函数或存储过程的定义
plpgsql 代码块
pg 查看表的膨胀率
pg 获取表大小
pg 非物化视图所有者刷新物化视图
本站点使用 MrDoc 构建
-
+
首页
pg 生成节假日
## 自然工作日和周末 ```sql select to_char(dt,'YYYY-MM-DD') "日期", to_char(dt,'ID') "周几", --周一-1 to_char(dt,'DDD') "一年中第几天", to_char(dt,'Q') "季度", case when to_char(dt,'ID')::int % 7 in (0,6) then '周末' else '工作日' end "类型" from generate_series('2023-01-01'::timestamp, '2023-12-31'::timestamp, interval '1 day') as dt ; ``` ## 国务院节假日安排 2023年节假日参考:https://www.gov.cn/fuwu/2022-12/08/content_5730853.htm ```sql select to_char(dt,'YYYY-MM-DD') "日期", to_char(dt,'ID') "周几", --周一-1 to_char(dt,'DDD') "一年中第几天", to_char(dt,'Q') "季度", type "类型" from (values ('2023-01-01'::timestamp,'节假日'), ('2023-01-02'::timestamp,'节假日'), ('2023-01-21'::timestamp,'节假日'), ('2023-01-22'::timestamp,'节假日'), ('2023-01-23'::timestamp,'节假日'), ('2023-01-24'::timestamp,'节假日'), ('2023-01-25'::timestamp,'节假日'), ('2023-01-26'::timestamp,'节假日'), ('2023-01-27'::timestamp,'节假日'), ('2023-01-28'::timestamp,'上班'), ('2023-01-29'::timestamp,'上班'), ('2023-04-05'::timestamp,'节假日'), ('2023-04-23'::timestamp,'上班'), ('2023-04-29'::timestamp,'节假日'), ('2023-04-30'::timestamp,'节假日'), ('2023-05-01'::timestamp,'节假日'), ('2023-05-02'::timestamp,'节假日'), ('2023-05-03'::timestamp,'节假日'), ('2023-05-06'::timestamp,'上班'), ('2023-06-22'::timestamp,'节假日'), ('2023-06-23'::timestamp,'节假日'), ('2023-06-24'::timestamp,'节假日'), ('2023-06-25'::timestamp,'上班'), ('2023-09-29'::timestamp,'节假日'), ('2023-09-30'::timestamp,'节假日'), ('2023-10-01'::timestamp,'节假日'), ('2023-10-02'::timestamp,'节假日'), ('2023-10-03'::timestamp,'节假日'), ('2023-10-04'::timestamp,'节假日'), ('2023-10-05'::timestamp,'节假日'), ('2023-10-06'::timestamp,'节假日'), ('2023-10-07'::timestamp,'上班'), ('2023-10-08'::timestamp,'上班') ) t(dt,type) ``` ## 2023年节假日 ```sql with t1 as ( select to_char(dt,'YYYY-MM-DD') "日期", to_char(dt,'ID') "周几", --周一-1 to_char(dt,'DDD') "一年中第几天", to_char(dt,'Q') "季度", case when to_char(dt,'ID')::int % 7 in (0,6) then '周末' else '工作日' end "类型" from generate_series('2023-01-01'::timestamp, '2023-12-31'::timestamp, interval '1 day') as dt ), t2 as ( select to_char(dt,'YYYY-MM-DD') "日期", to_char(dt,'ID') "周几", --周一-1 to_char(dt,'DDD') "一年中第几天", to_char(dt,'Q') "季度", type "类型" from (values ('2023-01-01'::timestamp,'节假日'), ('2023-01-02'::timestamp,'节假日'), ('2023-01-21'::timestamp,'节假日'), ('2023-02-22'::timestamp,'节假日'), ('2023-01-23'::timestamp,'节假日'), ('2023-01-24'::timestamp,'节假日'), ('2023-01-25'::timestamp,'节假日'), ('2023-01-26'::timestamp,'节假日'), ('2023-01-27'::timestamp,'节假日'), ('2023-01-28'::timestamp,'上班'), ('2023-01-29'::timestamp,'上班'), ('2023-04-05'::timestamp,'节假日'), ('2023-04-23'::timestamp,'上班'), ('2023-04-29'::timestamp,'节假日'), ('2023-04-30'::timestamp,'节假日'), ('2023-05-01'::timestamp,'节假日'), ('2023-05-02'::timestamp,'节假日'), ('2023-05-03'::timestamp,'节假日'), ('2023-05-06'::timestamp,'上班'), ('2023-06-22'::timestamp,'节假日'), ('2023-06-23'::timestamp,'节假日'), ('2023-06-24'::timestamp,'节假日'), ('2023-06-25'::timestamp,'上班'), ('2023-09-29'::timestamp,'节假日'), ('2023-09-30'::timestamp,'节假日'), ('2023-10-01'::timestamp,'节假日'), ('2023-10-02'::timestamp,'节假日'), ('2023-10-03'::timestamp,'节假日'), ('2023-10-04'::timestamp,'节假日'), ('2023-10-05'::timestamp,'节假日'), ('2023-10-06'::timestamp,'节假日'), ('2023-10-07'::timestamp,'上班'), ('2023-10-08'::timestamp,'上班') ) t(dt,type) ) select * from t2 union all select * from t1 where "日期" not in (select "日期" from t2) order by "日期" ; ```
vleity
2025年7月28日 12:27
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码