如何修改现有SQL内连接查询筛选2月份入职的员工姓名
修改方案
你只需在原有SQL的基础上添加WHERE条件,判断入职日期的月份为2月即可,不同数据库的月份提取函数略有区别,以下是主流数据库的可用写法:
- MySQL / MariaDB 版本
SELECT empname, hiredate FROM employees INNER JOIN Dept ON employees.deptid = Dept.deptid WHERE MONTH(hiredate) = 2;
- PostgreSQL 版本
SELECT empname, hiredate FROM employees INNER JOIN Dept ON employees.deptid = Dept.deptid WHERE EXTRACT(MONTH FROM hiredate) = 2;
- SQL Server 版本
SELECT empname, hiredate FROM employees INNER JOIN Dept ON employees.deptid = Dept.deptid WHERE DATEPART(MONTH, hiredate) = 2;
- Oracle 版本
SELECT empname, hiredate FROM employees INNER JOIN Dept ON employees.deptid = Dept.deptid WHERE EXTRACT(MONTH FROM hiredate) = 2; -- 也可使用TO_CHAR函数实现:WHERE TO_CHAR(hiredate, 'MM') = '02'
- 通用兼容版本(不依赖数据库特定函数,要求hiredate格式为
YYYY-MM-DD)
SELECT empname, hiredate FROM employees INNER JOIN Dept ON employees.deptid = Dept.deptid WHERE SUBSTRING(hiredate, 6, 2) = '02';
执行修改后的SQL后,你提供的测试数据会返回以下结果:
| empname | hiredate |
|---|---|
| ALLEN | 1981-02-20 |
| WARD | 1981-02-22 |
内容的提问来源于stack exchange,提问作者Yash Deole
相关产品推荐
相关产品推荐

