日期:2014-05-16  浏览次数:20515 次

马上学会oracle-----二

今天主要的功课是oracle的select语句,sql语句在上一篇文章

查询语句中使用函数
   round(**)用于数字的四舍五入。
  案例1  计算金额的四舍五入。
      

select ename,salary*0.1234567 s1,
      round(salary*0.1234567,2) s2,
      round(salary*0.1234567) s3 from emp_xxx;


  案例2 数字函数 trunc(**)
    trunc()用于截取,如果没有第二个参数,默认是0
  
select ename,salary*0.1234567 s1,
       round(salary*0.1234567,2) s2,
       round(salary*0.1234567) s3,
       trunc(salary*0.1234567,2) s4 from emp_xxx;


  案例3,日期函数sysdate
    获取系统当前时间
       select sysdate from dual;
       //虚表dual是Oracle用于操作函数的方式,属于
       sys用户,共享给所以用户使用,虚表dual是单行
       单列的表,表中存放一个常量数据x
      
 select * from dual;


       虚表的意义,更方便的操作函数或者查询常量
       如下例。表中有多少条数据,常量就会出现多少次
      
 select sysdate from emp_xxx;


       //感觉查询结果与真实的有出入
       //没有出入,有几条数据则显示几次常量(当前时间)
  案例4   日期数据相减
      计算员工入职多少天
      //我的错误解 select sysdate-hiredate from emp_xxx;
      select ename,hiredate,(sysdate-hiredate)days from emp_xxx;
      日期数据相减,得到两个日期之间的天数差,不足一天用小数表示,
      可以用round函数处理,
      select ename, hiredate,round(sysdate-hiredate)days from emp_xxx;
  案例5   日期函数  months_between()**
      计算员工入职多少个月,保留有小数
        
 select ename,hiredate,
         months_between(sysdate,hiredate)months from emp_xxx;


  案例6     不保留小数。入职为整数个月
        
 select ename,hiredate,
          round(months_between(sysdate,hiredate))months from emp_xxx;


  案例7  计算12个月之前的时间点
        
 select add_months(sysdate,-12)from dual;


         //暂时未发现有add_year等方法 select add_year(sysdate,-5)from dual;
  案例8 日期函数 last_day()*
         计算本月最后一天
        
 select last_day(sysdate) from dual;


  案例9 转换函数
         转换函数 to_char(日期数据,格式):把日期转化为字符数据
         把时间数据按照指定格式输出。
         select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
  案例10 把时间数据按指定格式输出
         
select to_char(sysdate,'year month dd day dy') from dual;


         //输出星期几的时候 用day 用dy也可以
         select to_char(sysdate,'year month dd dy') from dual;
  案例11 把时间数据按指定格式输出
        
 select to_char(sysdate,'yyyy/mm/dd')from dual;
         select to_char(sysdate,'mm/yyyy/dd')from dual;
         select to_char(sysdate,'mm/y/dd')from dual;


   小结:日期格式
       1,常用日期格式
          yyyy 四位数字年 如:2011
          year 全拼的年   如 twenty eleven
          month 全频的月  如 november 或者11月
          mm    两位数字月 如 11
          mon   简拼的月   如nov,中文没有简拼
          dd    两位数字日
          day   全拼的星期