oracle 我想在“20-FEB-81”和“01-MAY-81”之间选择雇用
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/7372971/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
I want to choose hiredate between '20-FEB-81' AND '01-MAY-81'
提问by user770022
I want the names of the employees, job, hiredate between '20-FEB-81' AND '01-MAY-81', and in ascending order
我想要“20-FEB-81”和“01-MAY-81”之间的雇员、工作、受雇人员的姓名,并按升序排列
query I ran with error
查询我运行时出错
SQL> select ename, job, hiredate where hiredate between '20-FEB-81' AND '01-MAY-81' from emp;
select ename, job, hiredate where hiredate between '20-FEB-81' AND '01-MAY-81' from emp
*
ERROR at line 1:
ORA-00923: FROM keyword not found where expected
SQL>
My table SQL> select empno, ename, job, hiredate, sal from emp;
我的表 SQL> 从 emp 中选择 empno、ename、job、hiredate、sal;
EMPNO ENAME JOB HIREDATE SAL
---------- ---------- --------- --------- ----------
7839 KING PRESIDENT 17-NOV-81 5000
7698 BLAKE MANAGER 01-MAY-81 2850
7782 CLARK MANAGER 09-JUN-81 2450
7566 JONES MANAGER 02-APR-81 2975
7654 MARTIN SALESMAN 28-SEP-81 1250
7499 ALLEN SALESMAN 20-FEB-81 1600
7844 TURNER SALESMAN 08-SEP-81 1500
7900 JAMES CLERK 03-DEC-81 950
7521 WARD SALESMAN 22-FEB-81 1250
7902 FORD ANALYST 03-DEC-81 3000
7369 SMITH CLERK 17-DEC-80 800
EMPNO ENAME JOB HIREDATE SAL
---------- ---------- --------- --------- ----------
7788 SCOTT ANALYST 09-DEC-82 3000
7876 ADAMS CLERK 12-JAN-83 1100
7934 MILLER CLERK 23-JAN-82 1300
14 rows selected.
SQL>
回答by a_horse_with_no_name
The WHERE part goes afterthe FROM part.
WHERE部分进入后的FROM部分。
select ename, job, hiredate
from emp
where hiredate between '20-FEB-81' AND '01-MAY-81'
Note that your date literals may not always work if the NLS settings change. It is highly recommended to use to_date() instead.
请注意,如果 NLS 设置更改,您的日期文字可能并不总是有效。强烈建议使用 to_date() 代替。
select ename, job, hiredate
from emp
where hiredate between to_date('20-FEB-81', 'DD-MON-RR') AND to_date('01-MAY-81', 'DD-MON-RR')
But this is still subject to language settings problems, better not use month namesat all:
但这仍然受到语言设置问题的影响,最好根本不要使用月份名称:
select ename, job, hiredate
from emp
where hiredate between to_date('20-02-81', 'DD-MM-RR') AND to_date('01-05-81', 'DD-MM-RR')