业务需求
今天获得一个统计报表的业务:
在一个企业用户表中(详细字段不写),现需要统计所有员工的退休日期形成一个定时任务,在定时任务中,如果员工接近还有60天,定时任务会短信发名单给人事部。人事部专员办理退休手续
要求:
1、只显示还有60天就退休的人员信息
2、男的年龄是60岁退休
3、女的年龄是55岁退休(其中工人岗的是50岁退休)
代码如下

select position_hiera,user_name,birth,age,gender,post_type,DATE_ADD(birth,INTERVAL 60 YEAR) retire_date,'21900'-TIMESTAMPDIFF(DAY,birth,now()) as surplus_days from rost_use where gender='男' and '21900'-TIMESTAMPDIFF(DAY,birth,now())>0 and '21900'-TIMESTAMPDIFF(DAY,birth,now())<=60
UNION all
select position_hiera,user_name,birth,age,gender,post_type,DATE_ADD(birth,INTERVAL 50 YEAR) retire_date,'18250'-TIMESTAMPDIFF(DAY,birth,now()) as surplus_days from rost_use where gender='女' and post_type = '工人岗' and '18250'-TIMESTAMPDIFF(DAY,birth,now())>0 and 18250-TIMESTAMPDIFF(DAY,birth,now())<=60
UNION all
select position_hiera,user_name,birth,age,gender,post_type,DATE_ADD(birth,INTERVAL 55 YEAR) retire_date,'20075'-TIMESTAMPDIFF(DAY,birth,now()) as surplus_days from rost_use where gender='女' and post_type not in('工人岗') and '20075'-TIMESTAMPDIFF(DAY,birth,now())>0 and '20075'-TIMESTAMPDIFF(DAY,birth,now())<=60

解析:

-- 出生日期+60年后转换成日期角色
DATE_ADD(birth,INTERVAL 60 YEAR) retire_date
-- 21900 = 60年*365日/年
-- 18250 = 50年*365日/年
-- 20075 = 55年*365日/年
-- mysql函数:【now()-出生日期】转换成天数【DAY】
TIMESTAMPDIFF(DAY,birth,now())

结果如下

Mysql:如果知道一个用户的出身日期,如何统计他的退休年龄是那一年相关推荐

  1. 如何在mysql中添加用户_如何给mysql数据库添加一个用户

    首先以root身份登录到MySQL服务器中. $ mysql -u root -p 当验证提示出现的时候,输入MySQL的root帐号的密码. 创建一个MySQL用户 使用如下命令创建一个用户名和密码 ...

  2. mysql控制台增加一个用户_MySQL 纯命令行添加用户

    创建用户: 命令: 1 CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明:username – 你将创建的用户名, host – 指 ...

  3. mysql实现根据身份证号码计算出身日期和年龄

    提出 在我们国家身份证号码从第七位开始到第十四为表示的是你的出生日期:所以给定一个身份证号码我们就可以根据身份证号码计算出相应的出生日期和年龄 解决 计算出生日期 SELECT DATE_FORMAT ...

  4. navicate 无法远程访问mysql数据库,设置用户

    办公电脑访问项目组服务器上mysql数据库,出现错误,无法连接上,机器is not allowed to 访问. 解决方法: 到服务器上,通过navicate在mysql上添加一个用户,并进行相关授权 ...

  5. mysql一个用户SQL慢查询分析,原因及优化

    小结 做join的字段尽量设计为类型完全相同. [本文转自]http://bbs.aliyun.com/read/243927.html?spm=5176.7189909.5.26.F7qZcd BI ...

  6. mysql用创建的用户登陆并修改表格_MySQL 基础学习二:创建一个用户表,并增删改查...

    MySQL 基础学习二:创建一个用户表,并 增删改查 提示:MySQL 命令建议都用大写,因为小写运行时,还是翻译成大写的. 第一步,创建一个用户表 1,打开控制台,进入数据库 C:\Users\Ad ...

  7. 学习OceanBase :如何在MySQL模式下创建一个用户?

    本节主要介绍如何创建一个用户. 谁可以创建用户 数据库在运行过程中,往往需要创建不同的用户,并为用户赋予相应的权限,一般被授予 CREATE USER 权限的用户可以创建用户. 由于 CREATE U ...

  8. 用mysql + node搭建一个简易工作列表网站

    初衷 增删改查是web开发最常见的操作,那么接下来这篇文章将演示如何用node + mysql做一个简易的网站. 需要的知识 本教程不涉及express等web框架,但请确保您对node + mysq ...

  9. MySQL 怎么插入10天前的日期_使用 MySQL 的 SQL_MODE 有哪些坑,你知道么?

    (给数据分析与开发加星标,提升数据技能) 来源:陈臣 SQL_MODE是MySQL中的一个系统变量(variable),可由多个MODE组成,每个MODE控制一种行为,如是否允许除数为0,日期中是否允 ...

最新文章

  1. 树莓派电压过低 串口数据错误增多
  2. Redis-11使用 watch 命令监控事务
  3. DelphiXe5中的双向绑定
  4. MongoDB API实现增删改查
  5. 鸿蒙杀戮手机电脑版,鸿蒙杀戮单职业最新版
  6. oracle轮询方式循环输出,LGWR的两种模式(POST/WAIT和POLLING)
  7. 前端学习(1687):前端系列javascript基础面试前言
  8. 如何为 SQL Server 2000 分发和安装 SQL-DMO(引用)
  9. 矩形法_教程 | 三个案例教会你大师都爱用的矩形造字法!
  10. c开头英文语言,C开头的考研英语词汇
  11. 小狗扫地机器人与石头_石头扫地机器人 T7:使用一周后的真实测评报告
  12. 50 年的软件开发经验带给我的 63 个启示
  13. 安装erlang没有bin文件夹_Windows10有关jdk13.0.1的详细安装过程
  14. 2012年,拥抱梦想实现梦想!
  15. webview的javascript与Native code交互
  16. Java基础程序设计的报告
  17. 技嘉服务器主板装系统,技嘉主板u盘装系统怎么进行bios设置的方法
  18. mysql 查询当前日期
  19. Oracle数据库管理(一):创建和删除数据库
  20. Vue+UpLoad实现上传、点图预览、删除图片

热门文章

  1. STM32F207 USB复合设备
  2. Euraka 服务注册与发现
  3. 看完这篇文章,保你学会C语言while循环与 do while 循环
  4. Java实现连接数据库验证登录和注册(附详细知识点讲解)
  5. java数组 如何动态增加、查询、删除元素
  6. 定积分以及变积分上限函数(附代码)
  7. Java JNA (二)—— dll回调函数实现
  8. 欧姆龙机器视觉软件系统FJ FZ FH系列仿真
  9. 了解OLED显示屏的工作原理
  10. 装机秘籍:Windows10与deepin v20双系统装机(电脑小白也能看哦!!)