ORACLE 常用函数——转换函数

------------------------------------------类型转换函数----------------------------------------------
--自动类型转换, ORACLE 可以自动根据具体情况进行如下转换:
*字符串到数值
*字符串到日期
*数值到字符串
*日期到字符串

EX:

--*字符串到数值
SELECT '3.14159' + 20 FROM DUAL;

SELECT '3.1T' + 20 FROM DUAL;  --报错:无效数字,即字符串必须能转换为数值类型才能进行操作

--*数值到字符串
SELECT '100' || 124 FROM DUAL;

--1: TO_CHAR(DATE,'FORMAT')
把对应的数据转换为字符串类型

SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM DUAL;

SELECT TO_CHAR(SAL) FROM SCOTT.EMP;

SELECT TO_CHAR(122323.45, '$99999999.99') FROM DUAL;

Y或YY或YYY 年的最后一位,两位或三位
SELECT TO_CHAR(SYSDATE, 'YYY') FROM DUAL;
SELECT TO_CHAR(SYSDATE, 'YY') FROM DUAL;

SYEAR或YEAR SYEAR使公元前的年份前加一负号
SELECT TO_CHAR(SYSDATE, 'SYEAR') FROM DUAL;    --TWENTY ELEVEN

Q 季度,1~3月为第一季度
SELECT TO_CHAR(SYSDATE, 'Q') FROM DUAL;        -- 2表示第二季度

MM 月份数
SELECT  TO_CHAR(SYSDATE, 'MM') FROM DUAL;      --04表示4月 

RM 月份的罗马表示
SELECT TO_CHAR(SYSDATE, 'RM') FROM DUAL;       --IV表示4月 

Month 用9个字符长度表示的月份名
SELECT TO_CHAR(SYSDATE, 'MONTH') FROM DUAL;    -- 4月 

WW 当年第几周
SELECT TO_CHAR(SYSDATE, 'WW') FROM DUAL;       -- 24表示2002年6月13日为第24周 

W 本月第几周
SELECT TO_CHAR(SYSDATE, 'W') FROM DUAL;        -- 2011年04月26日为第4周 

DDD 当年第几天. 1月1日为001,2月1日为032
SELECT TO_CHAR(SYSDATE, 'DDD') FROM DUAL;

DD 当月第几天
SELECT TO_CHAR(SYSDATE, 'DD') FROM DUAL;

D 周内第几天
SELECT TO_CHAR(SYSDATE, 'D') FROM DUAL;

DY 周内第几天缩写
SELECT TO_CHAR(SYSDATE, 'DY') FROM DUAL;

HH或HH12 12进制小时数
SELECT TO_CHAR(SYSDATE, 'HH') FROM DUAL;

HH24 24小时制
SELECT TO_CHAR(SYSDATE, 'HH24') FROM DUAL;

MI 分钟数(0~59)
SELECT TO_CHAR(SYSDATE, 'MI') FROM DUAL;
提示注意不要将MM格式用于分钟(分钟应该使用MI)。MM是用于月份的格式,将它用于分钟也能工作,但结果是错误的。

SS 秒数(0~59)
SELECT TO_CHAR(SYSDATE, 'SS') FROM DUAL;

--2:  TO_DATE(STRING,'FORMAT')
将字符串转化为ORACLE中的一个日期

SELECT  TO_DATE('2011-03-24', 'YYYY/MM/DD') FROM DUAL;   --格式化后依然为 2011-3-24, 很是纳闷,自己查资料解决这个问题

SELECT TO_DATE('2011/03/24', 'YYYY-MM-DD') FROM DUAL;

--3:  TO_NUMBER
将给出的字符转换为数字

SELECT TO_NUMBER('2008') AS Year FROM DUAL;

--4:   RUNC(for number)
按照指定的精度截取一个数
TRUNC函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。

  其具体的语法格式如下

  TRUNC(number[,decimals])

  其中:

  number 待做截取处理的数值

  decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分

SELECT TRUNC(314.14159234, -2) AS FirstNumber, TRUNC(314.14159234,2) FROM DUAL;

--5:    CHARTOROWID
把包含外部格式的ROWID的CHAR或VARCHAR2数值转换为内部的二进制格式.参数string必须是包含外部格式的ROWID的18字符的字符串.
oracle7和 oracle8中的外部格式是不同的.CHARTOROWID是ROWIDTOCHAR的反函数.

SELECT ROWID, CHARTOROWID('adcddfADGEDGJGFRYJ'), ENAME FROM SCOTT.EMP;

--6:  ROWIDTOCHAR
将ROWID数据类型转换为字符类型
将ROWID类型的数值rowid转换为其外部的18字符的字符串表示,在oracle7和oracle8之间有些不一样的地方. ROWIDTOCHAR和CHARTOROWID是两个相反的函数.

SELECT ROWID,  ROWIDTOCHAR(ROWID), ENAME FROM SCOTT.EMP

--7:  CONVERT(c,dset,sset)
将源字符串 sset从一个语言字符集转换到另一个目的dset字符集

SELECT CONVERT('? ê í ó ? A B C D E ', 'US7ASCII', 'WE8ISO8859P1')   FROM DUAL; 

--8:HEXTORAW
将一个十六进制构成的字符串转换raw

 SELECT HEXTORAW('324') FROM DUAL;

--9: RAWTOHEX
将RAW类数值rawvalue转换为一个相应的十六进制表示的字符串. rawvalue中的每个字节都被转换为一个双字节的字符串. RAWTOHEX和HEXTORAW是两个相反的函数.

SELECT RAWTOHEX('11') FROM DUAL;

--10:  TO_MULTI_BYTE
将字符串中的单字节字符转化为多字节字符
即将指定字符转换为全角并返回char类型字串
SELECT TO_MULTI_BYTE('ABC abc 中华') FROM DUAL;

SELECT TO_MULTI_BYTE('AFDB') FROM DUAL;

--11:    DUMP(s,fmt,start,length)
DUMP函数以fmt指定的内部数字格式返回一个VARCHAR2类型的值
 dump是个功能非常强悍的函数,对于深入了解oracle存储的人而言相当有用。所以对于我们这些仅仅只是应用的人而言就不知道能将其应用于何处了。此处仅介绍用法,不对其功能做深入分析。

    如上所示,dump拥有不少参数。其本质是以指定格式,返回指定长度的exp的内部表示形式的varchar2值。fmt含4种格式:8||10||16||17,分别表示8进制,10进制,16进制和单字符,默认为10进制。
    start参数表示开始位置,length表示以,分隔的字串数。
例如:SELECT DUMP('abcdefg',17,2,4) FROM DUAL; 

--12:  EMPTY_BLOB()
这两个函数都是用来对大数据类型字段进行初始化操作的函数

--13:  EMPTY_CLOB()
-----------------------------------------------------------------------------------------------------------
时间: 2024-07-28 20:00:36

ORACLE 常用函数——转换函数的相关文章

VBS教程:函数-转换函数_vbs

转换函数 Asc 函数CBool 函数CByte 函数CCur 函数CDate 函数CDbl 函数Chr 函数CInt 函数CLng 函数CSng 函数CStr 函数Hex 函数Oct 函数

php不常用ip转换函数与实例应用

$ip="127.0.0.1";           //定义ip地址 $long=ip2long($ip);           //转换ip地址为整数 if($long==-1||$long===false)         //如果执行错误 {   echo 'invalid ip, please try again';        //输出错误信息 } else {   echo $ip  . "n";           //192.0.26.166  

ORACLE常用数值函数、转换函数、字符串函数介绍

oracle|函数|转换|字符串 ORACLE常用数值函数.转换函数.字符串函数介绍. 数值函数: abs(m) m的绝对值 mod(m,n) m被n除后的余数 power(m,n) m的n次方 round(m[,n]) m四舍五入至小数点后n位的值(n缺省为0)trunc(m[,n]) m截断n位小数位的值(n缺省为0) -------------------------------------------------------------------------------- 字符函数:

ORACLE常用数值函数、转换函数、字符串函数_oracle

本文更多将会介绍三思在日常中经常会用到的,或者虽然很少用到,但是感觉挺有意思的一些函数.分二类介绍,分别是: 著名函数篇 -经常用到的函数 非著名函数篇-即虽然很少用到,但某些情况下却很实用 注:N表示数字型,C表示字符型,D表示日期型,[]表示内中参数可被忽略,fmt表示格式. 单值函数在查询中返回单个值,可被应用到select,where子句,start with以及connect by 子句和having子句. (一).数值型函数(Number Functions) 数值型函数输入数字型参

Oracle 常用SQL函数

oracle|函数 时间:2005-02-18 Oracle的SQL函数分为单行函数和多行函数.单行函数只对单条记录有效,多行函数对多条记录有效. 单行函数包括,字符.数字.日期.转换和普通函数. 字符函数举例:• 全小写  LOWER('SQL Course')   sql course• 全大写 UPPER('SQL Course')     SQL COURSE •首字母大写 INITCAP('SQL Course')    Sql Course拼接 CONCAT('Good', 'Str

oracle常用函数汇总

以下是对oracle中的常用函数进行了汇总介绍,需要的朋友可以过来参考下   一.运算符算术运算符:+ - * / 可以在select 语句中使用 连接运算符:|| select deptno|| dname from dept; 比较运算符:> >= = != < <= like between is null in 逻辑运算符:not and or 集合运算符: intersect ,union, union all, minus 要求:对应集合的列数和数据类型相同     

oracle常用函数汇总(分享)_oracle

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

oracle 转换函数的使用

oracle|函数|转换 1.日期转换函数 add_months(d,n) n 为月的倍数  :例如 d=20041116  add_months(to_date(d,'yyyymmdd',1)  结果为  20041216 日 2.数字转换函数to_number(c,'999,999')转换字符串为number型 例如:  c='158,000'     to_number(c,'999,999')  =158000

SQLServer和Oracle常用函数对比

oracle|server|sqlserver|函数 数学函数 1.绝对值 S:select abs(-1) value O:select abs(-1) value from dual 2.取整(大) S:select ceiling(-1.001) value O:select ceil(-1.001) value from dual 3.取整(小) S:select floor(-1.001) value O:select floor(-1.001) value from dual 4.取