SQL案例分析:计算延迟法定退休年龄

news/2025/3/14 9:17:16/

2024年9月13日第十四届全国人民代表大会常务委员会第十一次会议通过了《关于实施渐进式延迟法定退休年龄的决定》。
从2025年1月1日起,男职工和原法定退休年龄为五十五周岁的女职工,法定退休年龄每四个月延迟一个月,分别逐步延迟至六十三周岁和五十八周岁;原法定退休年龄为五十周岁的女职工,法定退休年龄每二个月延迟一个月,逐步延迟至五十五周岁。国家另有规定的,从其规定。

https://www.gov.cn/yaowen/liebiao/202409/content_6974294.htm

基于这个决定,我们可以编写一个SQL查询语句,根据自己的性别和出生日期计算最新的法定退休年龄​:

sql">-- PostgreSQL实现
WITH person_info(category, birthday) AS ( -- 输入个人信息SELECT '男职工', '1985-01-01'::date
),
original_retirement AS ( -- 改革前退休时间SELECT CASE categoryWHEN '男职工' THEN birthday + INTERVAL '60 year' WHEN '女干部' THEN birthday + INTERVAL '55 year'WHEN '女员工' THEN birthday + INTERVAL '50 year'END retirement_ageFROM person_info
),
delay_month(n) AS ( -- 延迟月数SELECT CASE categoryWHEN '男职工' THEN LEAST(36, 1+(EXTRACT(year FROM age(birthday,'1965-01-01'::date))*12 + EXTRACT(month FROM age(birthday,'1965-01-01'::date)))::int/4)WHEN '女干部' THEN LEAST(36, 1+(EXTRACT(year FROM age(birthday,'1970-01-01'::date))*12 + EXTRACT(month FROM age(birthday,'1970-01-01'::date)))::int/4)WHEN '女员工' THEN LEAST(50, 1+(EXTRACT(year FROM age(birthday,'1975-01-01'::date))*12 + EXTRACT(month FROM age(birthday,'1975-01-01'::date)))::int/2)ENDFROM person_info
)
SELECT category "员工类型",birthday "出生日期",retirement_age "原始退休时间",n "延迟月数", retirement_age + make_interval(0, n) AS "改革后退休时间"
FROM person_info, original_retirement, delay_month;员工类型|出生日期  |原始退休时间            |延迟月数|改革后退休时间         |
-------+----------+-----------------------+------+-----------------------+
男职工 |1985-01-01|2045-01-01 00:00:00.000|     36|2048-01-01 00:00:00.000|

以上查询应该说非常简单易懂了,person_info 代表了职工的信息;original_retirement 是改革之前的退休时间;delay_month 是改革后延迟的月数,如果不是使用 PostgreSQL,需要调整一下函数;最后得到了改革之后的退休时间。

所以,我们只要在查询的最开始输入自己的工种和出生日期,就可以得到退休时间了。

你还能再为国家奉献几年呢?


http://www.ppmy.cn/news/1526995.html

相关文章

系统架构设计师 大数据架构篇一

🌐大数据架构 大数据处理系统分析 🔍 大数据处理系统三大挑战 🚀 非结构化数据处理:如何处理非结构化和半结构化数据。复杂性与不确定性:大数据复杂性、不确定性特征描述的刻画方法和大数据的系统建模。异构性影响&…

PHP环境搭建详细教程

PHP是一个流行的服务器端脚本语言,广泛用于Web开发。为了使PHP能够在本地或服务器上运行,我们需要搭建一个合适的PHP环境。本教程将结合最新资料,介绍在不同操作系统上搭建PHP开发环境的多种方法,包括Windows、macOS和Linux系统的…

828华为云征文|docker部署kafka及ui搭建

1.介绍 1.1 什么是华为云Flexus X实例 最近华为云828 B2B企业节正在举办,Flexus X实例的促销也非常给力,大家可以去看看。特别是对算力性能有要求,同时对自建MySQL、Redis、Nginx性能有要求的小伙伴,千万不要错过。Flexus云服务器…

初始爬虫6

数据提取 数据提取总结 响应分类 结构化 json数据(高频出现) json模块 jsonpath模块 xml数据(低频出现) re模块 …

AWTK fscript 中的 value 扩展函数

fscript 是 AWTK 内置的脚本引擎,开发者可以在 UI XML 文件中直接嵌入 fscript 脚本,提高开发效率。本文介绍一下 fscript 中的 ** value 扩展函数 ** value 扩展函数 value 相关的辅助函数。 1. value_is_valid 判断 value 是否有效。 原型 value_i…

Zotero使用(一)PDF文件导入不会自动识别

上面两种,一种中文,一种英文,会发现,中文的导入进去之后不会自动识别,部分英文也是。不能自动识别就会缺少导出参考文献的功能,怎么办? 发现之前导入喜欢使用PDF格式 可以结合.ris格式&#xf…

【spring】spring框架中使用的设计模式有哪些,经典的设计模式应用,spring框架中哪些地方使用了哪些优秀的设计模式

【spring】spring框架中使用的设计模式有哪些,经典的设计模式应用,spring框架中哪些地方使用了哪些优秀的设计模式 Spring框架在设计和实现过程中,广泛使用了多种设计模式以增强其灵活性、可扩展性和易用性。以下是一些Spring框架中常见的设计…

24.9.16学习笔记

语义分割(Semantic Segmentation)是一种计算机视觉任务,其目标是对输入图像中的每一个像素进行分类,从而将图像中的不同物体或区域标记出来。与目标检测不同,语义分割不仅关注物体的存在与否,还要明确指出物…