友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
第三电子书 返回本书目录 加入书签 我的书架 我的书签 TXT全本下载 『收藏到我的浏览器』

oracle从入门到精通(PDF格式)-第6部分

快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!


z  LN(x) 函数,返回x 的自然对数。x 必须大于 0 。  

z  LOG(x;y) 函数,返回以X 为底 Y 的对数。底必须是不为0 和 1 的正数,Y 是任意正数。  

z  MOD(被除数,除数)求余函数,如果除数为 0,则返回被除数。  

z  POWER(x;y) 函数,返回X 的Y 次幂。底 X 和指数 Y 都不必是正整数,但如果 X 是负数的话, 

   Y 必须是整数。  

z  ROUND(x';y') 函数,返回舍入到小数点右边Y 位的 X 值。Y 缺省为 0,这将X 舍入为最接近的 

   整数。如果 Y 是负数,那么舍入到小数点左边相应的位上,Y 必须为整数。  

z  SIGN(x)函数,此函数用来返回一个数的正负值,若为一个正数则返回 1,若为一个负数则返回 

   …1,若为 0 则仍返回 0,有点像把模拟量数字化的意思。  

z  SIN(x)函数,返回X 的正弦。x 是以弧度表示的角度。  

z  SINH(x)函数,返回x 的双曲正弦。  

z  SQRT(x)函数,返回x 的平方根,x 不能是负数。  

z  TAN(x)函数,返回x 的正切。x 是以弧度表示的角度。  

z  TANH(x)函数,返回x 的双曲正切。  

z  TRUNC(x';y')截取值函数,Y 缺省为 0,这样X 被截取成一个整数。如果 Y 为负数,那么截取 

   到小数点左边相应位置  

z  WIDTH_BUCKET(x;min;max;num_buckets)  只能在 SQL 语句中使用。  

   使用WIDTH_BUCKET 可以根据输入参数创建等长的段。范围MIN 到MAX 被分为num_buckets 

节,每节有相同的大小。返回 X 所在的那一节。如果 X 小于 MIN ,将返回 0,如果X 大于或等于 

MAX ,将返回num_buckets+1。MIN 和 MAX 都不能为 NULL ,num_buckets 必须是一个正整数。如 

果 X 是 NULL ,则返回NULL 。  



  



3、时间类型函数:(date)  



  内部存储格式:世纪、年、月、日、小时、分钟、秒  

  默认格式是:DD…MON…RR。  

  SYSDATE 返回当前的系统时间。  

  SELECT SYSDATE FROM DUAL;  



                               第 15 页,共 106 页 


…………………………………………………………Page 16……………………………………………………………

资源来自网络,仅供学习!                                                Oracle 从入门到精通 



3。1、对日期的数学运算  



  SELECT (SYSDATE…HIRE_DATE)/7 FROM TABLENAME WHERE ROWNUM;  

      SYSDATE…HIRE_DATE:数字列  

  ADD_MONTHS(date;x)函数,返回加上X 月后的日期 DATE 的值。X 可以是任意整数。如果结果的 

  月份中所包含的        日分量少于 DATE 的月份的日分量,则返回结果月份的最后一天。如果不小 

  于,则结果与 DATE 的日分量相同。时间分量也相同。  

  CURRENT_DATE 以DATE 类型返回会话时区当前的日期。这个函数同 SYSDATE 相似,除了SYSDATE 

  不管当会话时区。  

  CURRENT_TIMESTAMP'(precision)'  以 TIMESTAMP WITH TIMEZONE 类型返回会话时区当前的 

  日期。如果指定 precision,它指返回秒数的精度,缺省为 6。  

  DBTIMEZONE  返回数据库的时区。     

  LAST_DAY (日期) 指定日期所在月份的最后一天的日期,这个函数可用来确定本月还有多少天。  

  LOCALTIMESTAMP'(precision)'  以 TIMESTAMP 类型返回会话时区的当前日期。如果指定 

  precision,它指返回秒数的精度,缺省为 6 。  

  MONTHS_BETWEEN(离当前比较近的日期 date1;以前的日期)  两个日期之间相差的月数(以日作 

  为最小单位来计算的)。返回是相差的月数。如果 date1 和date2 的日分量相同,或者这两个日 

  期都分别是所在月的最后一天,那么返回结果是个整数。否则,返回结果包含一个分数,以一 

  个月 31 天计算。  

  NEW_TIME(d;zone1;zone2)函数,当时区 zone1 中的日期和时间是 D 的时候,返回时区 zone2 中 

  的日期和时间。返回类型为 DATE。zone1和 zone2 是字符字符串,另外的时区可在 ORACLE9I 中  

  通过查询 VTIMEZONE_NAMES 得到。  

  NEXT_DAY (日期,星期几) 指定日期后将要遇到的后七天的某一天的日期。  

  ROUND(日期,‘MONTH/YEAR’) 四舍五入得到新的日期。 保留位置是月和年  

  SESSIONTIMEZONE  返回当前会话的时区。返回类型是一个时区偏移或时区片名的字符字符串。 

  如果指     定格式,则与 ALTER SESSION 语句中的格式相同。  

  SYS_EXTRACT_UTC(datetime) 从提供的 DATETIME 中以UTC(Coordinated Universal Time)返回 

  时间。DATETIME 必须包含一个时区。  

  SYSTIMESTAMP  以 TIMESTAMP WITH TIMEZONE 返回当前的日期和时间。当在分布式 SQL语句中 

  使用的时候,返回本地数据库的日期和时间。  

  TRUNC(日期,‘MONTH/YEAR’) 截取   

  TZ_OFFSET(timezone)  以字符字符串返回提供的 timezone和 UTC 之间的偏移量。timezone 

  可以被指定为时区名或'+/…HH:HI'格式表示的偏移量。也可使用 SESSIONTIMEZONE 和 

  DBTIMEZONE函数,返回格式为'+/…HH:HI'。  

    

  字符字符串             时区  

  AST            大西洋标准时  

  ADT            大西洋夏令时  

  BST            白令标准时  

  BDT            白令夏令时  

  CST            中央标准时  

  CDT            中央夏令时  

  EST            东部标准时  

  EDT            东部夏令时  

  GMT            格林威治平均时  

  HST            阿拉斯加夏威夷标准时  



                              第 16 页,共 106 页 


…………………………………………………………Page 17……………………………………………………………

资源来自网络,仅供学习!                                                        Oracle 从入门到精通 



  HDT              阿拉斯加夏威夷夏令时  

  MST              Mountain 标准时  

  MDT              Mountain 夏令时  

  NST              纽芬兰标准时  

  PST              太平洋标准时  

  PDT              太平洋夏令时  

  YST              YuKon 标准时  

  YDT              YuKon 夏令时  

    



3。2、日期和日期时间算术  



  运算       返回类型  

  结果    

    

  d1…d2    NUMBER  

  返回 D1 和 D2 之间相差的天数。该值是一个数值,其小数部分代表一天的几分之几。  

  dt1…dt2      INTERVAL  

  返回 DT1 和DT2 之间的时间间隔。  

  i1…i2     INTERVAL  

  返回 i1 和 i2 之间的差距。  

  d1+d2    N/A  

  非法——仅能进行两个日期之间的相减。  

  dt1+dt2      N/A  

  非法——仅能进行两个日期之间的相减。  

  i1+i2     INTERVAL  

  返回 i1 和 i2 的和。  

  d1+n     DATE  

  在 D1 上加上N 天作为DATE 类型返回。N 可以是实数,它包含一天的几分之几。  

  d1…n     DATE  

  从 D1 上减去N 天作为DATE 类型返回。N 可以是实数,它包含一天的几分之几。  

  dt1+i1       DATETIME  

  返回 DT1 和I1 的和。  

  dt1…i1       DATETIME  

  返回 DT1 和I1 之间的差距。  

  i1*n      INTERVAL  

  返回 I1 的N次方。  

  i1/n      INTERVAL  

  返回 I1 除以N 的值。  

    

  表中注:  

  D1和 D2 指日期值;  

  DT1 和DT2 指日期时间值;  

  I1和 I2 指时间间隔值;  

  N 指数字值。  

    



                                  第 17 页,共 106 页 


…………………………………………………………Page 18……………………………………………………………

资源来自网络,仅供学习!                                                   Oracle 从入门到精通 



3。3、显示转换:(conversion)  



  TO_NUMBER(char';'format_model'')  字符转换到数字类型  

  TO_DATE(char';'format_model'')  字符转换到日期类型  

  格式说明符:要与前边要转换的字符串的格式要相同才能转换(匹配问题:格式和位数)。  

  TO_CHAR(date';'format_model'';nlsparams'')  

  第二个参数可以省略,不指定格式,按系统默认格式输出。  

  区分大小写。  

  使用 FM(在格式控制符前添加)符号可以去掉空格或是首位的零。  

  如果指定了 NLSPARAMS,则它控制返回字符串的月和日分量所使用的语言。格式为:  

       'NLS_DATA_LANGUAGE=language';language 指需要的语言。  

       例:select to_char(sysdate;'FMyyyy…mm…dd') from dual;  

         

   5。格式控制符的类型:  

                     YYYY 四位的年  

                     YEAR 年的拼写  

                     MM  2 位数字的月  

                     MONTH 月的全名  

                     MON 月名的前三个字符  

                     DY 星期名的前三个字符  

                     DAY 星期名的全称  

                     DD 2 位的天   

  6。时间格式控制符:  

                     HH24:MI:SS AM  

                     HH12:MI:SS PM  

         

  7。通过“”来实现加入特殊字符的格式控制符。  

  SELECT TO_CHAR(SYSDATE;'FMyyyy〃年〃mm〃月〃dd〃日〃') from dual;  

  DDSPTH  

  ~~  

  DD 是格式控制符。   

  TH 是序数词,将日期转换成英文的序数词拼写。  

  SP 是基数词,将日期转换成英文的基数词拼写。  

    

  TO_CHAR(NUM';'format_model'';nlsparams'')转换数字   

   将 NUMBER 类型参数 NUM转换成 VARCHAR2 类型。如果指定 FORMAT,它会控制整个转换。  

  如果没有指定 FORMAT,那么结果字符串中将包含和 NUM 中有效位的个数相同的字符。NLSPARAMS 

  用来指定小数点和千分符及货币符号。它的格式可为:'NLS_NUMERIC_CHARS=' ' dg '  

  'NLS_CURRENCY= ' 'string' ' ' 。 d 和g 分别代表小数点和千分符,STRING 代表货币符号。  

    

    

  数字格式控制符:  

            9   代表一位数字(替换符。有,数字显示;没有。不什么都显示。)   

            0   代表一位数字(有数字,显示;没有,强制显示 0。)                     

               美圆符号  

            L   本地货币  



                                第 18 页,共 106 页 


…………………………………………………………Page 19……………………………………………………………

资源来自网络,仅供学习!                                                     Oracle 从入门到精通 



             。   小数点  

             ;   千分符  

             B   当整数部分为 0 时,将整数部分填充为空格。  例:B999  

             MI  返回带有后继符号而不是前导负号的负数值,正数值将带有后继的空格。999MI  

             S   返回一个前导符号或后继符号,正数为+,负数为…。 S9999 或 9999S  

             PR  使用尖括号返回负数。正数将有前导或后继空格。999PR  

             D   在指定位置返回一个小数点。两侧的 9 的个数指定了最大的位数。99D9  

             G   在指定位置返回千分符,G 可以在 FORMAT_model 中出现多次。9G999G9  

             C   在指定位置返回 ISO货币符号。C可以在 FORMAT_model 中出现多次。C99  

             L   在指定位置上返回本地货币符号。 L99  

             V   返回一个被乘以 10 的N 次方的数值,这里 N 是V 后边9 的个数。99V99  

             EEEE  使用科学记数法返回该数值。9。99EEEE  

             RM   使用大写的罗马数字表示返回该数值。 RM  

             rm   使用小写的罗马数字表示返回该数值。 rm  

             FM   返回不含前导和后继空格的数值。 FM99。09  

  格式控制符位数一定要大于或等于 NUMBER 的位数,不能小于。  

    

    

  用 RR 解决跨世纪问题: 小于 50 的认为是 1950…2050  

                     大于 50 的认为是 1951…1999   

    

  数字和日期是不能相互转换的。  

    

  ASCIISTR(string)    

  返回只包含有效的 SQL字符和斜线的字符串。string 中的任何无效的字符将被转换为一个相当 

  的数字,在之前加上斜线。    

  BIN_TO_NUM(num';num'。。。)    

    将一位矢量转换位相当的数字。它的参数是一系列逗号隔开的 NUMS,每一个都必须是 0 或1。  

  例如 BIN_TO_NUM(1;0;1;1)将返回 11,因为 11 的二进制表示是 1011。当使用分组集合和 GROUP  

  BY 子句时该函数很有用。            

  CHARTOROWID(x)函数,  

    将字符串转换成一个 ROWID 类型的值,注意格式必须采用 ROWID 数据类型格式,即“数据块号: 

行序号:数据文件号”。   

  POSE(string)    

    以相同字符集中完全规格化 Unicode 形式返回string。string可以是CHAR、VARCHAR2、NCHAR、 

NVARCHAR2、CLOB或 NCLOB 类型。  

  DEPOSE(string)   

    返回一个 Unicode 字符串。它是 string 的规范分解。string 可以是 CHAR、VARCHAR2、 NCHAR、 

NVARCHAR2、CLOB或 NCLOB 类型。   

  FROM_TZ(timestamp;timezone)   

   返回一个 TIMESTAMP WITH TIMEZONE 类型值。它将 TIMESTAMP(没有时区信息)和提供的 TIMEZONE 

组合在一起。  

  HEXTORAW(string)  

   将由 STRING 表示的二进制数值转换为一个 RAW数值。STRING 应该包含十六进制值。STRING 中 

  的每两个字符表示结果 RAW 中的一个字节。HEXTORAW 和RAWTOHEX 互为反函数。   

  NUMTODSINTERVAL(x;unit)   



                                第 19 页,共 106 页 


…………………………………………………………Page 20……………………………………………………………

资源来自网络,仅供学习!                                                       Oracle 从入门到精
返回目录 上一页 下一页 回到顶部 0 0
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!