如果员工入职后的前3个月为试用期,如果转正日期刚好是周末,顺延至下周一,查询职位不是MANAGER,也不是PRESIDENT的员工姓名,入职日期,转正日期,转正月的最后一天日期
时间: 2023-09-23 19:04:22 浏览: 74
可以使用以下 SQL 查询来筛选职位既不是MANAGER也不是PRESIDENT的员工,并显示他们的姓名、入职日期、转正日期以及转正月份的最后一天日期:
```sql
SELECT
name,
hire_date,
CASE
WHEN DAYOFWEEK(CONCAT(YEAR(hire_date), '-', MONTH(hire_date), '-01')) = 7 THEN DATE_ADD(DATE_ADD(CONCAT(YEAR(hire_date), '-', MONTH(hire_date), '-01'), INTERVAL 1 MONTH), INTERVAL 1-DAYOFMONTH(DATE_ADD(CONCAT(YEAR(hire_date), '-', MONTH(hire_date), '-01'), INTERVAL 1 MONTH)) DAY)
WHEN DAYOFWEEK(CONCAT(YEAR(hire_date), '-', MONTH(hire_date), '-01')) = 1 THEN DATE_ADD(DATE_ADD(CONCAT(YEAR(hire_date), '-', MONTH(hire_date), '-01'), INTERVAL 1 MONTH), INTERVAL 2-DAYOFMONTH(DATE_ADD(CONCAT(YEAR(hire_date), '-', MONTH(hire_date), '-01'), INTERVAL 1 MONTH)) DAY)
ELSE DATE_ADD(DATE_ADD(CONCAT(YEAR(hire_date), '-', MONTH(hire_date), '-01'), INTERVAL 1 MONTH), INTERVAL -1 DAY)
END AS regularization_date,
LAST_DAY(DATE_ADD(CONCAT(YEAR(hire_date), '-', MONTH(hire_date), '-01'), INTERVAL 2 MONTH)) AS last_day_of_regularization_month
FROM
emp
WHERE
job <> 'MANAGER' AND job <> 'PRESIDENT';
```
这个查询首先判断入职日期的月份的第一天是周几,如果是周六(7),则转正日期为下个月的第一天加2天;如果是周日(1),则转正日期为下个月的第一天加1天;否则,转正日期为下个月的第一天减去1天。然后,使用 LAST_DAY 函数获取转正月份的最后一天日期。最后,查询返回符合条件员工的姓名、入职日期、转正日期和转正月份的最后一天日期。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)