mysql - 如何在我的案例陈述中添加 "range of years"

标签 mysql case date-arithmetic

如何在下面的案例陈述中添加“年份范围”?我只需要修复“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/

相关文章:

MYSQL Workbench 导入按钮丢失

vbscript - 使用 ChassisType 选择案例的多个条件

macros - Clojure 范围大小写宏

sql - 创建特定历史日期的表 oracle sql

mysql - 如何使用 switch-case 更改 sql 中 .csv 的值

mysql - 尝试连接三个表以获得特定结果

使用可为空参数的 SQL case 表达式

database - 在 Oracle 函数中获取上个月的最后一天

javascript - Jscript 在开发和测试机器上返回不同的(计算的)结果 - 使用相同的代码

Mysql搜索