【发布时间】:2016-06-17 06:49:57
【问题描述】:
如何根据 sql 中的月份字段比较两个日期?
有人可以举一个例子来显示在经理加入的那几个月里加入的员工姓名吗?
我试过这些:
SELECT e_name
FROM emp5 e,
department1 d,
manager m
WHERE e.e_id = d.empno
AND m.deptno = d.deptno
AND month(e.hiredate) = month(m.hiredate);
SELECT e_name
FROM emp5 e,
department1 d,
manager m
WHERE e.e_id = d.empno
AND m.dep tno = d.deptno
AND month(e.hiredate) = month(m.hiredate)
SELECT e_name
FROM emp5 e,
department1 d,
manager m
WHERE e.e_id = d.empno
AND m.deptno = d.deptno
AND dd - mon - yy(e.hiredate, '%m-%y') = dd - mon - yy(m.hiredate, '%m-%y');
SELECT e_name
FROM emp5 e,
department1 d,
manager m
WHERE e.eid = d.empno
AND m.deptno = d.deptno
AND extract(month FROM e.hiredate) = extract(month FROM m.hiredate);
这是我的 emp5 表 –
E_ID E_NAME SALARY HIREDATE
----- ------------------------- ---------- ---------
e01 Komal Pandya 13000 02-FEB-15
e02 Ganesh Patel 20000 01-FEB-15
【问题讨论】:
-
您的日期是如何存储的?您尝试过什么,结果是什么?你真正想要什么输出?示例数据和查询将大大有助于您获得有意义的答案。
-
SQL> select e_name from emp5 e,department1 d,manager m where e.e_id=d.empno and m.deptno=d.deptno and month(e.hiredate)=month(m.hiredate ); select e_name from emp5 e,department1 d,manager m where e.e_id=d.empno and m.dep tno=d.deptno and month(e.hiredate)=month(m.hiredate) 2.SQL> select e_name from emp5 e,department1 d,manager m where e.e_id=d.empno and m.deptno=d.deptno and dd-mon-yy(e.hiredate,'%m-%y')=dd-mon-yy(m .hiredate,'%m-%y' );我试过这些......
-
Here 是一些关于如何提出好问题的信息
-
SQL> select e_name from emp5 e,department1 d,manager m where e.eid=d.empno and m .deptno=d.deptno and extract(month from e.hiredate)=extract(month来自 m.hiredat e);我也试过这个。和 E_ID E_NAME SALARY HIREDATE ----- ------------- ---------- --------- e01 Komal Pandya 13000 02-FEB-15 e02 Ganesh Patel 20000 01-FEB-15 这是我的 emp5 表
-
我不想问这个显而易见的问题,但是您是否设置了适当的数据 - 也就是说,您的两个指定的 emp5 记录有一个部门和经理记录?如果您在月份运行查询时没有匹配 - 您会得到结果吗?