查询所有员工入职以来的工作期限,用“**年**月**日”的形式表示??
怎么写啊?

解决方案 »

  1.   

    select  to_char(sysdate-startdate,'yyyy')||'年'||to_char(sysdate-startdate,'yyyy')||'月'||to_char(sysdate-startdate,'yyyy')||'日' from tbl_name
      

  2.   

    select to_char(sysdate,'YYYY年MM月DD日' from tbl_name
      

  3.   

    我看明白了你的意思.不过我在我的9I里还是不能运行.
    select  to_char(sysdate-startdate,'yyyy')||'年'||to_char(sysdate-startdate,'yyyy')||'月'||to_char(sysdate-startdate,'yyyy')||'日' from emp一下是我的运行结果
    SQL> ed
    已写入文件 afiedt.buf  1  select to_char(sysdate-hiredate,'yyyy')
      2  ||
      3  '年'
      4  ||
      5  to_char(sysdate-hiredate,'yyyy')
      6  ||
      7  '月'
      8  ||
      9  to_char(sysdate-hiredate,'yyyy')
     10  ||
     11  '日'
     12* from emp
    SQL> /
    select to_char(sysdate-hiredate,'yyyy')
                                    *
    ERROR 位于第 1 行:
    ORA-01481: 无效的数字格式模型
    顺便再问个问题,还是关于sql语句的   利用oracle自带的scott数据库中的emp和dept表查询平均工资低于2000的部门及其员工信息。
      

  4.   

    我试过了,这样写报错~select to_char(sysdate,'YYYY年MM月DD日') from emp
                           *
    ERROR 位于第 1 行:
    ORA-01821: 日期格式无法识别
      

  5.   

    select to_char(sysdate,'yyyy') ||'年'||to_char(sysdate,'mm') ||'月'||to_char(sysdate,'dd') ||'日' from dual;
      

  6.   

    为什么这样写 to_char(sysdate-hiredate,'yyyy')||'年' 就报错呢?? 提示说 无效的数字格式模型
    但我要的就是sysdate减去hiredate(入职日期)的结果啊~
    比如当前时间是2009年5月10日,日志日期是2000年1月1日
    查询的结果显示的应该是9年4月9月
      

  7.   

    两个日期相减 返回天数 是数字格式 无法转换成'yyyy'这种格式。
    正确的做法如下:
    select (to_number(to_char(sysdate,'yyyy'))-to_number(to_char(hiredate,'yyyy')))
    ||'年'|| (to_number(to_char(sysdate,'mm'))-to_number(to_char(hiredate,'mm')))
    ||'月' || (to_number(to_char(sysdate,'dd'))-to_number(to_char(hiredate,'dd'))) 
    ||'日' 
    from table,dual;
      

  8.   

    这回明白了~先谢过了~我这还有几个问题~ 呵呵 不好意思 还得麻烦下~1.查询人数最多的部门信息 
    2.查询平均工资低于2000的部门及其员工信息
    3.查询所有员工中工资排序在5到10名之间的员工信息
    这三个怎么做啊?其中第二个
    查询平均工资低于2000的部门信息
     select * from dept where deptno in (select deptno from emp group by deptno having avg(sal)<2000)
    这样做可以执行~
     查询部门及其员工信息
    select dname,dept.deptno,loc,empno,ename,job,sal from emp right join dept on dept.deptno=emp.deptno
    把emp表有连接到dept表上 这样也可以运行
    但是怎么把这两个条件加起来啊??
      

  9.   

    1.select * from dept where deptno in (select deptno from (select deptno,count(empno) a from emp group by deptno order by deptno desc) where rownum=1);2.select * from emp where deptno in (select deptno from (select avg(sal) sal,deptno from emp group by deptno) a where a.sal<2000);3.select * from (select emp.*,row_number() over(order by sal) rn from emp)a where a.rn between 5 and 10;