oracle常用函数汇总篮球世界杯赌球

2020-05-02 10:25 来源:未知

取整:

以下是对oracle中的常用函数进行了汇总介绍,需要的朋友可以过来参考下

复制代码 代码如下:select floor(5.534) from dual;select trunc(5.534) from dual;

 

上面两种用法都可以对数字5.534向下取整,结果为5.

一、运算符
算术运算符: - * / 可以在select 语句中使用
连接运算符:|| select deptno|| dname from dept; 
比较运算符:> >= = != < <= like between is null in
逻辑运算符:not and or 
集合运算符: intersect ,union, union all, minus 
要求:对应集合的列数和数据类型相同
     查询中不能包含long 列
     列的标签是第一个集合的标签
     使用order by时,必须使用位置序号,不能使用列名

如果要向上取整 ,得到结果为6,则应该用ceil

例:集合运算符的使用:

复制代码 代码如下:select ceil(5.534) from dual;

复制代码 代码如下:

四舍五入:

intersect ,union, union all, minus 
select * from emp intersect select * from emp where deptno=10 ;
select * from emp minus select * from emp where deptno=10;
select * from emp where deptno=10 union select * from emp where deptno in (10,20); --不包括重复行 
select * from emp where deptno=10 union all select * from emp where deptno in (10,20); --包括重复行

复制代码 代码如下:SELECT round(5.534) FROM dual;SELECT round(5.534,0) FROM dual;SELECT round(5.534,1) FROM dual;SELECT round(5.534,2) FROM dual;

二.ORACLE日期时间函数大全 
   TO_DATE格式(以时间:2007-11-02   13:45:25为例)

结果分别为 6, 6, 5.5, 5.53

        Year:      
        yy two digits 两位年                显示值:07
        yyy three digits 三位年                显示值:007
        yyyy four digits 四位年                显示值:2007

保留N位小数:

        Month:      
        mm    number     两位月              显示值:11
        mon    abbreviated 字符集表示          显示值:11月,若是英文版,显示nov     
        month spelled out 字符集表示          显示值:11月,若是英文版,显示november 

复制代码 代码如下:select trunc(5.534,0) from dual;select trunc(5.534,1) from dual;select trunc(5.534,2) from dual;

        Day:      
        dd    number         当月第几天        显示值:02
        ddd    number         当年第几天        显示值:02
        dy    abbreviated 当周第几天简写    显示值:星期五,若是英文版,显示fri
        day    spelled out   当周第几天全写    显示值:星期五,若是英文版,显示friday        
        ddspth spelled out, ordinal twelfth 

结果分别是 5,5.5,5.53,其中保留0位小数就相当于直接取整了。

              Hour:
              hh    two digits 12小时进制            显示值:01
              hh24 two digits 24小时进制            显示值:13

数字格式化:

              Minute:
              mi    two digits 60进制                显示值:45

复制代码 代码如下:select to_char(12345.123,'99999999.9999') from dual;

              Second:
              ss    two digits 60进制                显示值:25

结果为12345.123

              其它
              Q     digit         季度                  显示值:4
              WW    digit         当年第几周            显示值:44
              W    digit          当月第几周            显示值:1

复制代码 代码如下:select to_char(12345.123,'99999999.9900') from dual;

        24小时格式下时间范围为: 0:00:00 - 23:59:59....      
        12小时格式下时间范围为: 1:00:00 - 12:59:59 .... 

小数后第三第四为不足补0,结果为12345.1230

1. 日期和字符转换函数用法(to_date,to_char)
         
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual;   //日期转化为字符串   
select to_char(sysdate,'yyyy') as nowYear   from dual;   //获取时间的年   
select to_char(sysdate,'mm')    as nowMonth from dual;   //获取时间的月   
select to_char(sysdate,'dd')    as nowDay    from dual;   //获取时间的日   
select to_char(sysdate,'hh24') as nowHour   from dual;   //获取时间的时   
select to_char(sysdate,'mi')    as nowMinute from dual;   //获取时间的分   
select to_char(sysdate,'ss')    as nowSecond from dual;   //获取时间的秒

复制代码 代码如下:select to_char(0.123,'99999999.9900') from dual;select to_char(0.123,'99999990.9900') from dual;

select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss')    from dual//

结果分别为 .123, 0.123

2. select to_char( to_date(222,'J'),'Jsp') from dual      

以上就是脚本之家的小编为大家整理的Oracle中对数字常用的操作,需要的小伙伴可以参考一下。

    显示Two Hundred Twenty-Two  

3.求某天是星期几      
   select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day') from dual;      
   星期一      
   select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;      
   monday      
   设置日期语言      
   ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';      
   也可以这样      
   TO_DATE ('2002-08-26', 'YYYY-mm-dd', 'NLS_DATE_LANGUAGE = American')      

4. 两个日期间的天数      
    select floor(sysdate - to_date('20020405','yyyymmdd')) from dual;  

5. 时间为null的用法      
   select id, active_date from table1      
   UNION      
   select 1, TO_DATE(null) from dual;      
   注意要用TO_DATE(null)      

6.月份差   
   a_date between to_date('20011201','yyyymmdd') and to_date('20011231','yyyymmdd')      
   那么12月31号中午12点之后和12月1号的12点之前是不包含在这个范围之内的。      
   所以,当时间需要精确的时候,觉得to_char还是必要的 

7. 日期格式冲突问题      
    输入的格式要看你安装的ORACLE字符集的类型, 比如: US7ASCII, date格式的类型就是: '01-Jan-01'      
    alter system set NLS_DATE_LANGUAGE = American      
    alter session set NLS_DATE_LANGUAGE = American      
    或者在to_date中写      
    select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;      
    注意我这只是举了NLS_DATE_LANGUAGE,当然还有很多,      
    可查看      
    select * from nls_session_parameters      
    select * from V$NLS_PARAMETERS      
8.     

复制代码 代码如下:

篮球世界杯赌球,   select count(*)      
   from ( select rownum-1 rnum      
       from all_objects      
       where rownum <= to_date('2002-02-28','yyyy-mm-dd') - to_date('2002-      
       02-01','yyyy-mm-dd') 1      
      )      
   where to_char( to_date('2002-02-01','yyyy-mm-dd') rnum-1, 'D' )      
        not in ( '1', '7' )     

   查找2002-02-28至2002-02-01间除星期一和七的天数      
   在前后分别调用DBMS_UTILITY.GET_TIME, 让后将结果相减(得到的是1/100秒, 而不是毫秒).      

9. 查找月份  

复制代码 代码如下:

    select months_between(to_date('01-31-1999','MM-DD-YYYY'),to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL;      
    1      
   select months_between(to_date('02-01-1999','MM-DD-YYYY'),to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL;      
    1.03225806451613

10. Next_day的用法     

复制代码 代码如下:

    Next_day(date, day)      

    Monday-Sunday, for format code DAY      
    Mon-Sun, for format code DY      
    1-7, for format code D    

11      
   select to_char(sysdate,'hh:mi:ss') TIME from all_objects      
   注意:第一条记录的TIME 与最后一行是一样的      
   可以建立一个函数来处理这个问题     

复制代码 代码如下:

   create or replace function sys_date return date is      
   begin      
   return sysdate;      
   end;      

   select to_char(sys_date,'hh:mi:ss') from all_objects;  

12.获得小时数      
     extract()找出日期或间隔值的字段值

复制代码 代码如下:

    SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 2:38:40') from offer      
    SQL> select sysdate ,to_char(sysdate,'hh') from dual;      

    SYSDATE TO_CHAR(SYSDATE,'HH')      
    -------------------- ---------------------      
    2003-10-13 19:35:21 07      

    SQL> select sysdate ,to_char(sysdate,'hh24') from dual;      

    SYSDATE TO_CHAR(SYSDATE,'HH24')      
    -------------------- -----------------------      
    2003-10-13 19:35:21 19     

13.年月日的处理     

复制代码 代码如下:

   select older_date,      
       newer_date,      
       years,      
       months,      
       abs(      
        trunc(      
         newer_date-      
         add_months( older_date,years*12 months )      
        )      
       ) days 

   from ( select      
        trunc(months_between( newer_date, older_date )/12) YEARS,      
        mod(trunc(months_between( newer_date, older_date )),12 ) MONTHS,      
        newer_date,      
        older_date      
        from ( 
              select hiredate older_date, add_months(hiredate,rownum) rownum newer_date      
              from emp 
             )      
      )     

14.处理月份天数不定的办法      
   select to_char(add_months(last_day(sysdate) 1, -2), 'yyyymmdd'),last_day(sysdate) from dual      
16.找出今年的天数      
   select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from dual      
   闰年的处理方法      
   to_char( last_day( to_date('02'    | | :year,'mmyyyy') ), 'dd' )      
   如果是28就不是闰年      
17.yyyy与rrrr的区别     

复制代码 代码如下:

   'YYYY99 TO_C      
   ------- ----      
   yyyy 99 0099      
   rrrr 99 1999      
   yyyy 01 0001      
   rrrr 01 2001     

18.不同时区的处理      
   select to_char( NEW_TIME( sysdate, 'GMT','EST'), 'dd/mm/yyyy hh:mi:ss') ,sysdate      
   from dual;   

19.5秒钟一个间隔  

复制代码 代码如下:

   Select TO_DATE(FLOOR(TO_CHAR(sysdate,'SSSSS')/300) * 300,'SSSSS') ,TO_CHAR(sysdate,'SSSSS')      
   from dual      
   2002-11-1 9:55:00 35786      
   SSSSS表示5位秒数        

20.一年的第几天      
   select TO_CHAR(SYSDATE,'DDD'),sysdate from dual

   310 2002-11-6 10:03:51      

21.计算小时,分,秒,毫秒 

复制代码 代码如下:

     select      
     Days,      
     A,      
     TRUNC(A*24) Hours,      
     TRUNC(A*24*60 - 60*TRUNC(A*24)) Minutes,      
     TRUNC(A*24*60*60 - 60*TRUNC(A*24*60)) Seconds,      
     TRUNC(A*24*60*60*100 - 100*TRUNC(A*24*60*60)) mSeconds      
    from      
    (      
     select      
     trunc(sysdate) Days,      
     sysdate - trunc(sysdate) A      
     from dual      
   )      
   select * from tabname      
   order by decode(mode,'FIFO',1,-1)*to_char(rq,'yyyymmddhh24miss');      

TAG标签:
版权声明:本文由美洲杯赌球发布于计算机教程,转载请注明出处:oracle常用函数汇总篮球世界杯赌球