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()
-----------------------------------------------------------------------------------------------------------
ORACLE 常用函数——转换函数相关推荐
- oracle中转换函数,Oracle中的转换函数
Oracle中的转换函数有三个,分别为to_char(),to_date(),to_number() 1.to_char()的用法 格式化当前的日期时间 select sysdate,to_char( ...
- oracle 字符转整数,Oracle中字符串转换函数小数转法
Oracle中字符串转换函数小数转法 类别:Oracle数据库 作者:码皇 来源:薛凯博客 点击: Oracle中字符串转换函数小数转法 to_char()函数的字符串转换格式归纳如下 ...
- oracle常用的字符串函数,Oracle的常用字符函数实验展示
Oracle提供了众多实用的字符函数,在众多的字符函数中常用的并不多,精通常用的几个字符函数便可游刃有余. 通过这个小文儿简单演示一下常用字符函数的用法,供参考. 1.实验预备动作 1)创建实验表T ...
- oracle 聚合函数 日期,Oracle日期函数/字符函数/数字函数/转换函数/聚合函数
Oracle日期函数: MONTHS_BETWEEN:返回两个日期之间月份的差值 MONTHS_BETWEEN('01-EP-95','11-JAN-94') ===>19.6774194 AD ...
- MYSQL 获取当前日期及日期格式,和常用时间转换函数
经过多次尝试本人的目标完成: select newworkorder.WorkOrderNum,newworkorder.ProjectCode, newworkorder.WorkEstComDat ...
- oracle 的行列转换函数,Oracle行列转换函数
VM_CONCAT vm_concat可以用来进行行转列,默认以逗号分隔,可通过vm_concat(name,',','|')修改为|1 2 3 4 5 6 7 8 9 10 11 12 13SQL& ...
- 表达式和内部函数(运算符/连接符/数字函数/字符串函数/日期函数/转换函数/format函数)
运算符 运算符 名称 优先级 例子fa ^ 幂运算 1 a^b - 取负 2 -a * , / 乘除 3 a*b,a/b \ 整除 4 a\b Mod 取余运算 5 a Mod b +, - 加减 6 ...
- oracle常用关键字和函数
数据库的增删改查:增:insert into ... values();例:insert into p_emp values(sq_emp.nextval,'小白','保洁',7902,sysdate ...
- ORACLE简繁转换函数
oracle的convert函数也可以实现简繁转换,但是经测试存在一些问题,有些字转不了,比如'宣佈',所以自己写了一个简单的,可以实现字字对应的简繁转换.(convert函数能够实现部分的简繁转换已 ...
最新文章
- Windows Server 2012 R2 WSUS-13:部署二级WSUS
- NeHe OpenGL第二十四课:扩展
- JDK15真的来了,一起来看看它的新特性
- 固态函数不正确_一文解读quot;固态电容quot;的利与弊
- STM32之内部FLASH原理
- android java标准时间_Android 时间 日期 相关
- 子页面带到父页面提交
- 由于找不到MSVCR120.dll,无法继续执行代码.重新安装程序可能会解决此问题。
- 分享一个好看的个人主页源码
- rapidxml 给节点赋值时出现乱码问题
- 道格拉斯简化_简化组织变革:困惑的指南
- 对于同一个数据库,Log shipping和log backup不可以同时运行
- 以太网速率怎么手动设置_交换机如何配置速率和双工模式
- Pyecharts库及其与Django的结合使用
- Word打开和关闭速度均很慢的解决方法
- mpvue 搭配 minui
- java pdf文件转换图片,pdf文件转图片(java实现)
- 放大器的传递函数_运放全差分放大器实现单端与平衡的相互转换
- python3 已知两点坐标算角度
- 2022年11月多家权威机构____编程语言排行榜__薪酬状况
热门文章
- List数据转Map数据并进行分组排序
- SQL Server 2012 完全安装
- JetBrains在CLion的Linux和OS X版本中引入Swift支持
- Errors running builder 'DeploymentBuilder'
- 管理表空间和数据文件——建立表空间——建立字典管理表空间和建立加密表空间...
- 通过输入方式在Android上进行微博OAuth登录
- 【打印代码+好好理解+子串问题】LeetCode 76. Minimum Window Substring
- 一个学习Python的好链接
- [Ubuntu]在Ubuntu系统下连接远程Ubuntu服务器并传输文件:安装putty, filezilla
- 2019春第十二周作业Compile Summarize