加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle_SQL 基础之 类型转换

发布时间:2020-12-12 14:41:16 所属栏目:百科 来源:网络整理
导读:Oracle有三种最基本的数据类型,即字符型、数字型、日期型。 Oracle 数据类型的隐式转换 现在在oracle数据库中建立一个 user_info 表,对应代码如下: CREATE TABLE user_info( user_id NUMBER ( 2 ) PRIMARY KEY ,user_name VARCHAR2( 14 ),user_birthday D
YYYY 4位数字表示的年份 YEAR 英文描述的年份 MM 2位数字表示的月份 MONTH 英文描述的月份 MON 三个字母的英文描述月份简称 DD 2位数字表示的日期 DAY 英文描述的星期几 DY 三个字母的英文描述的星期几简称 HH24:MI:SS AM 时分秒的格式化 DDspth 英文描述的月中第几天 fm 格式化关键字,可选

还是以上面的user_info数据库为例,我们看下面几个例子:

SELECT to_char(u.user_birthday,'YYYY-MM-DD HH24:MI:SS AM') FROM user_info u WHERE u.user_id = 3 --查找结果:2017-07-20 19:25:19 下午

TO_CHAR() 函数:数字转化为字符串

TO_CHAR(number,‘format_model’) ;

其中format_model有如下格式:

9 表示一个数字 0 强制显示0 $ 放一个美元占位符 L 使用浮点本地币种符号 . 显示一个小数点占位符 , 显示一个千分位占位符

我们看下面几个例子的学习怎样使用这个函数:

alter session set NLS_CURRENCY = '¥';
SELECT to_char(1245562,'L99,999,999.00') FROM dual;
--查找结果:¥1,245,562.00
alter session set NLS_CURRENCY = '$';
SELECT to_char(1245562,999.00') FROM dual;
--查找结果:$1,562.00

TO_NUMBER() 函数:字符串转化为数字

TO_NUMBER(char[,‘format_model’]) ;

最简单的应用就是:

SELECT to_number('4456') FROM dual;
--4456

当然可以干一些较为复杂的转换,看如下代码:

SELECT to_number('$4,456,455.000','$9,999.999') FROM dual;
--查找结果:4456455

说明:以上面的语句为例:
我们的format_model要与待转化的数字对应好,且其位数不能小于它。
如上我们会发现$9,999.999$4,455.000是意义对应的。
也就是说上例中的format_model可以为:$999,999.999$9,999.999,但是不能为:$999,999.999或者$9,999.999等等。

TO_DATE()函数:字符串转化为日期

TO_DATE(char[,‘format_model’])

较为常用的用法如下:

SELECT to_date('2011-02-22','YYYY-MM-DD') FROM dual;
--2011/2/22

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

Oracle有三种最基本的数据类型,即字符型、数字型、日期型。

Oracle 数据类型的隐式转换

现在在oracle数据库中建立一个user_info表,对应代码如下:

CREATE TABLE user_info( user_id NUMBER(2) PRIMARY KEY,user_name VARCHAR2(14),user_birthday DATE);

赋值操作

在赋值操作的情况下,我们有如下四种隐式类型转换的情况:

字符串转化为数字

select '12'+'8' from dual;
-- 20 

字符串转化为日期

INSERT INTO USER_INFO (user_id,user_name,user_birthday) VALUES (1,'Tom','26-1月-08');

数字类型转换为字符串

INSERT INTO USER_INFO (user_id,user_birthday) VALUES (2,111,last_day('26-4月-08'));

说明:数字类型的111被转化为字符串插入到user_info表的user_name属性中去!

日期类型转化为字符串类型

INSERT INTO USER_INFO (user_id,user_birthday) VALUES (3,sysdate,sysdate+1);

说明:代码中的sysdate被转化为字符串赋值到了user_name属性中!

表达式比较操作

在表达式的比较操作过程中,我们可以进行如下两种隐式转换操作:

字符串转化为数字

select 1+1 from dual where '2' > 1;
-- 2

字符串转化为日期类型:

select 1+1 from dual where sysdate < '26-4月-19';
-- 2

但是一般常用的还是类型的显式转换!

Oracle 数据类型的显式转换

首先,我们常用的显式类型转换的函数与如下三种:

to_char():转化为字符串类型
to_number():转化为数字类型
to_date():转化为日期类型

我们用如下的图来说明则三个函数的使用场景:

那么就从上图的四个场景来分别介绍相应的函数用法:

TO_CHAR() 函数:日期转化为字符串

TO_CHAR(date,‘format_model’) ;

如上的format_model有如下格式:

日期格式化元素 意义
数字格式化元素 意义
    推荐文章
      热点阅读