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

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-19 00:18:36  来源:igfitidea点击:

I want to choose hiredate between '20-FEB-81' AND '01-MAY-81'

sqloraclesqlplus

提问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')