如何在下面的案例陈述中添加“年份范围”?我只需要修复“INTERVAL 6 YEAR”和“INTERVAL 5 YEAR”标准。
这是我需要建模的标准:
如果1~5年,那么11
如果6~10年,那么14
如果 11 岁以上,则 18
CASE WHEN hiredate < DATE_SUB(NOW(),INTERVAL 11 YEAR)
THEN '18'
WHEN hiredate < DATE_SUB(NOW(),INTERVAL 6 YEAR)
THEN '14'
WHEN hiredate < DATE_SUB(NOW(),INTERVAL 5 YEAR)
THEN '11'
ELSE '0' END AS Non_Management_Accrual
最佳答案
您可以使用DATEDIFF
方法计算两天之间的天数并将其除以 365 得到年
。基于这些,你可以写出case
语句,例如:
SELECT id, CASE WHEN FLOOR(DATEDIFF(NOW(), hiredate) / 365) < 1
THEN '0'
WHEN FLOOR(DATEDIFF(NOW(), hiredate) / 365) < 6
THEN '11'
WHEN FLOOR(DATEDIFF(NOW(), hiredate) / 365) < 11
THEN '14'
ELSE '18'
END AS Non_Management_Accrual
FROM emp;
这是 SQL Fiddle .
关于mysql - 如何在我的案例陈述中添加 "range of years",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41773658/