打开APP
未登录
开通VIP,畅享免费电子书等14项超值服
开通VIP
首页
好书
留言交流
下载APP
联系客服
ORACLE 常用函数——转换函数
哈飞扬
>《数据库知识(网文)》
2015.10.15
关注
--
自动类型转换,
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字符
的
字符串.
oracle
7和
oracle
8中
的
外部格式是不同
的
.CHARTOROWID是ROWIDTOCHAR
的
反函数.
SELECT
ROWID, CHARTOROWID(
'
adcddfADGEDGJGFRYJ
'
), ENAME
FROM
SCOTT.EMP;
--
6: ROWIDTOCHAR
将ROWID数据类型转换为字符类型
将ROWID类型
的
数值rowid转换为其外部
的
18字符
的
字符串表示,在
oracle
7和
oracle
8之间有些不一样
的
地方. 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()
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报
。
打开APP,阅读全文并永久保存
查看更多类似文章
猜你喜欢
类似文章
【热】
打开小程序,算一算2024你的财运
Oracle SQL 内置函数大全(2)
pl/sql常用函数
最新Oracle 和 mysql 的对比参照----开发篇
SQL Server与oracle两者区别之函数区别
Oracle常用的一些语法、命令和函数
oracle常用函数
更多类似文章 >>
生活服务
热点新闻
留言交流
回顶部
联系我们
分享
收藏
点击这里,查看已保存的文章
导长图
关注
一键复制
下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!
联系客服
微信登录中...
请勿关闭此页面
先别划走!
送你5元优惠券,购买VIP限时立减!
5
元
优惠券
优惠券还有
10:00
过期
马上使用
×