一段SQL语句不懂,请大虾指点一下~

来源:百度知道 编辑:UC知道 时间:2024/04/29 14:40:51
SELECT first_name, start_date, CURDATE(),
-> (YEAR(CURDATE())-YEAR(start_date)) - (RIGHT(CURDATE(),5)<RIGHT(start_date,5))
-> AS YearServed
-> FROM employee ORDER BY YearServed;
参考资料http://www.java2s.com/Tutorial/MySQL/0040__Select-Query/Tosorttheoutputbyalias.htm
能不能具体解释一下每一句的意思啊~谢谢~

这一段语句是查出每个人的工作年数.
start_date是入职日期,
CURDATE()得到当前日期,
(YEAR(CURDATE())-YEAR(start_date)) - (RIGHT(CURDATE(),5)<RIGHT(start_date,5))得到工作年数:先用当前日期所在年份减去入职日期所在年份得到n,再比较当前日期的月/日是否小于入职日期的月/日部分,如果小于则工作年数=n-1,否则=n.