zoukankan      html  css  js  c++  java
  • oracle数学函数

    oracle数学函数oracle trunc()函数的用法.
    1.TRUNC函数为指定元素而截去的日期值。
    其具体的语法格式如下:TRUNC(date[,fmt])

    其中:
    date 一个日期值
    fmt 日期格式,该日期将由指定的元素格式所截去。忽略它则由最近的日期截去

    下面是该函数的使用情况:
       select trunc(sysdate,'mm')from dual --2007-1-1:当月第一天
       select trunc(sysdate,'yy')from dual --2007-1-1:当年第一天
       select trunc(sysdate,'dd')from dual --2007-1-14:当天
       select trunc(sysdate,'day')from dual --2007-1-15:当周第一天
       select trunc(sysdate)from dual      --2007-1-15:当天
          说明:trunc(sysdate)输出的格式为YYYY-MM-DD,但它是把时间四舍五入到了当日的零点,
               即:to_char(trunc(sysdate),'YYYY-MM-DD HH24:mi:ss pm|am') = YYYY-MM-DD 00:00:00 上午

       比较下面三个的不同:
       select last_day(sysdate)+2 from dual;                --2007-2-2 19:07:52
       select (last_day(sysdate)+2)+10/24 from dual;        --2007-2-3 5:07:18
       select trunc(last_day(sysdate)+2)+10/24 from dual;   --2007-2-2 10:00:00

    TRUNC(TO_DATE(’24-Nov-1999 08:00 pm’,’dd-mon-yyyy hh:mi am’))=’24-Nov-1999 12:00:00 am’
    TRUNC(TO_DATE(’24-Nov-1999 08:37 pm’,’dd-mon-yyyy hh:mi am’,’hh’)) =’24-Nov-1999 08:00:00 am’

    2.TRUNC(for number)
    TRUNC函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。
    其具体的语法格式如下TRUNC(number[,decimals])

    其中:
    number 待做截取处理的数值
    decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分
    下面是该函数的使用情况:
    TRUNC(89.985,2)=89.98
    TRUNC(89.985)=89
    TRUNC(89.985,-1)=80
    注意:第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记。



    select nvl(alloffinum,offinum) 网元名称,
              sum(decode(checkflag,'A',1,0)) 未制作,     sum(decode(checkflag,'B',1,0)) 制作中,
              sum(decode(checkflag,'C',1,0)) 成功,       sum(decode(checkflag,'E',1,0)) 人工成功,
              sum(decode(checkflag,'G',1,0)) 成功回笼,sum(decode(checkflag,'I',1,0)) 人工回笼,
              sum(decode(checkflag,'F',1,0)) 退单回笼,sum(decode(checkflag,'H',1,0)) 失败,
              sum(decode(checkflag,'D',1,0)) 退单,       sum(decode(checkflag,'K',1,0)) 保护,
              sum(decode(checkflag,'J',1,0)) 禁止 from sheet_control
              where areano='0378' and stationno like '%'
         and intime >=trunc(sysdate)
           group by nvl(alloffinum,offinum)




    round函数
    round函数用于求出并返回最接近给定参数value值的整数值。如果两个整数都和value值等距离,那么round函数将返回较大的那个整数值。
    如果value是一个整数,则返回的就是value本身。round函数的语法格式为:

    float.round(value)

    如果参数value的值不是有效的数,那么round函数就会返回无效值invalid。

    使用round函数的例子如下:



    var a = float.round(3.5);                          // 计算结果为a = 4;4和3与3.5等距离,取较大的数4。

    var b = float.round(-3.5);                        // 计算结果为b = -3

    var c = float.round(0.5);                          // 计算结果为c = 1;1和0与0.5等距离,取较大的数1。

    var d = float.round(-0.5);                        // 计算结果为d = 0






    在oracle中,用法:mod(number1,number2)
         描述  
         两个数值相除并返回其余数。  
         语法  
         result      =      number1      Mod      number2  
         Mod      运算符的语法有以下部分:  
       
         部分      描述    
         result      任意数值变量。    
         number1      任意数值表达式。    
         number2      任意数值表达式。      
       
       
         说明  
         模数或余数。运算符执行      number1      除以      number2      操作(浮点数四舍五入为整数)并只返回余数作为      result。例如,在下面的表达式中,      A(为      result)等于      5。  
       
         A      =      19      Mod      6.7  
       
         如果任一表达式为      Null,则      result      也为      Null。任一表达式为      Empty      时按      0      来处理。  
         --------------------------------------------------------------------------------  
    0.5 mod 8 =0
    1.5 mod 8 =2
    0.6 mod 8=1
    1.6 mod 8=2

    4.5 mod 8=4
    6.5 mod 8=6
    6.6 mod 8=7
    7.4 mod 8=7
    7.5 mod 8=0

    8.4 mod 8=0
    8.5 mod 8=0
    8.6 mod 8=1
    被除数四舍五入之后再取模
    Round 函数都是采用 Banker's rounding(银行家舍入)算法,即四舍六入五取偶
    四舍六入五取偶

    round(3.5) mod round(8) 等于 4 mod 8
    round(4.5) mod round(8) 等于 4 mod 8
    round(5.5) mod round(8) 等于 6 mod 8
  • 相关阅读:
    html5shiv.js-让IE浏览器支持HTML5标准
    CSS2系列:外边距合并问题(margincollapse)
    HTML5:离线存储(缓存机制)-IndexDB
    CSS3系列:流式(弹性)布局(flex布局)
    Sublime Text 3 常用插件以及安装方法(转)
    后台配置参数写在文件上
    20160414
    2016413
    20160412
    网页设计素材网站
  • 原文地址:https://www.cnblogs.com/danghuijian/p/4400548.html
Copyright © 2011-2022 走看看