gpt4 book ai didi

MySQL 查询获取下个月的员工周年庆

转载 作者:行者123 更新时间:2023-11-29 08:05:00 25 4
gpt4 key购买 nike

我想编写一个查询来获取下个月到期的里程碑实现者(员工)列表。例如,一月份我们应该能够看到二月份里程碑的实现者。

里程碑实现者是指“下个月将在公司工作满 5、10、15、20、25、30、35、40 等”年数的员工。

有人可以帮忙吗?

提前非常感谢!

最佳答案

假设您有一个表 employees,其中包含 hired_at 列,其中包含他们开始在公司工作的日期,您只需获取下个月与雇用日期之间的差异是 60 个月(5 年)的倍数:

SELECT employee_name, 
TIMESTAMPDIFF(MONTH, DATE_FORMAT(hired_at, '%Y-%m-01'), DATE_FORMAT(CURDATE() + INTERVAL 1 MONTH, '%Y-%m-01')) / 60 AS how_many_years
FROM employees
WHERE
TIMESTAMPDIFF(MONTH, DATE_FORMAT(hired_at, '%Y-%m-01'), DATE_FORMAT(CURDATE() + INTERVAL 1 MONTH, '%Y-%m-01')) % 60 = 0;

我使用带有单位 MONTHTIMESTAMPDIFF 来计算差异,并使用 DATE_FORMAT 将两个日期设置为该月的第一天。这可能不是必要的,但这样做是安全的。

% 60 = 0取模 运算 (%)。如果前一个可以被 60 整除而没有剩余 (0),那么我们就有 60 个月/5 年的倍数。只需将 SELECT 子句中的差值除以 60,即可得出该员工为公司工作了多少年。

  • 了解有关 timestampdiff 的更多信息 heredate_format here

关于MySQL 查询获取下个月的员工周年庆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22905346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com