热线电话:13121318867

登录
2020-05-27 阅读量: 832
怎么在Mysql中分离出日期的年?

当我拿到这样一道题,我的内心是崩溃的~

给出每个员工每年薪水涨幅超过5000的员工编号emp_no、薪水变更开始日期from_date以及薪水涨幅值salary_growth,并按照salary_growth逆序排列。

CREATE TABLE `salaries` (

`emp_no` int(11) NOT NULL,

`salary` int(11) NOT NULL,

`from_date` date NOT NULL,

`to_date` date NOT NULL,

PRIMARY KEY (`emp_no`,`from_date`));

跟往常一样先拆分问题~

1、员工编号emp_no,薪水变更开始日期from_date,涨幅值salary_growth是要展示出来的

2、每年薪水涨幅超过5000 这里就要用到两张表的对比,算出涨幅值,注意‘每年’一词

3、按照salary_growth逆序排列

分析:对于‘每年’的划分,是将日期中的年份分离出来相减等于1. (用strftime('%Y', to_date)函数)

#这样问题就迎刃而解啦~

select s2.emp_no,s2.from_date,(s2.salary-s1.salary) salary_growth

from salaries s1,salaries s2

where s1.emp_no= s2.emp_no and (s2.salary-s1.salary)>5000

and strftime('%Y', s2.to_date)- strftime('%Y',s1.to_date) = 1

order by salary_growth DESC;

0.0141
1
关注作者
收藏
评论(0)

发表评论

暂无数据