如何使用SQL查询Employee表,该表列出了生日在10月或11月的雇员的所有数据?[duplicate]

9rygscc1  于 2022-11-03  发布在  Oracle
关注(0)|答案(1)|浏览(130)

此问题在此处已有答案

How to extract month number from date in Oracle(7个答案)
25天前关闭。
我正在努力查询一个Employee表,该表显示所有雇员数据,但只显示那些生日在10月或11月(无论哪一年)的雇员。
我的表格结构如下:

CREATE TABLE EMPLOYEE (
EMP_NUM integer PRIMARY KEY,
EMP_LNAME varchar2(15),
EMP_FNAME varchar2(12),
EMP_HIREDATE date,
EMP_DOB date
);

EMP_DOB的格式为“年/月/日”
我已尝试在Oracle Live SQL中查询以下内容:

SELECT *
FROM EMPLOYEE
WHERE MONTH(EMP_DATE) = '10' OR MONTH(EMP_DATE) = '11'

不幸的是,我收到错误消息:ORA-00904:“月份”:标识符无效

有人知道如何查询Employee表,以便只提取那些生日在10月或11月的雇员的所有雇员数据吗?

kknvjkwl

kknvjkwl1#

Month()返回日期的月份,对于1月到12月,返回范围为1到12;对于月份部分为零的日期,如“0000-00- 00”或“2008-00-00”,返回范围为0。
因此,您可以使用Extract(MONTH FROM dataExpression)从日期中提取月份。
您需要的查询是:-
SELECT * FROM EMPLOYEE WHERE EXTRACT(MONTH FROM EMP_DOB) IN (10,11);

相关问题