转换函数和其他函数

转换函数

 字符串、数值和日期三类数据之间是可以实现转换的。

No.

函数名

含义

1

字符串 to_char(列 | 日期,格式)

将日期或数字按格式转为字符串

2

日期 to_date(列 | 字符串,格式)

将字符串按格式转为日期

3

数字 to_number(列 | 字符串)

将字符串转为数字

 

 

 

 

 

 

to_char()

一、日期变为字符串,必须指定转换的格式。

         日期:年yyyy月mm日dd

         时间:时hh hh24分mi秒ss

         数字:任意数字9,货币L

 

示例1:将日期显示格式化。

select to_char(sysdate,'yyyy-mm-dd') from dual;

 

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

 

 

 

示例2:查询所有在4月份雇佣的雇员。

select * from emp where to_char(hiredate,'mm')='04';

select * from emp where to_char(hiredate,'mm')=4; --自动转型

 

 

 

示例3:将数字格式化显示,使用货币格式化显示。

select to_char('4758475847583','9,9999,9999,9999') from dual;

select to_char('4758475847583','L9,999,999,999,999') from dual;

 

 

 

二、将字符串变为日期

 示例4:将指定字符串按照格式转化为日期

select to_date('2017-11-21','yyyy-mm-dd') from dual;

 

 

三、将字符串转化为数字。

 示例5:to_number()演示。

select to_number('12')+to_number('1') from dual;

select '12'+'1' from dual;

 

 

 

题目1:date char number之间经常进行转换,请描述下列SQL语句。

select to_date('2017-07-14','yyyy-MM-dd') from dual;

select to_date('2017-07-14','yyyy-MM-dd') as one_day from dual;

 

select to_char(sysdate,'yyyy-MM-dd') as today from dual;

 

select to_timestamp('2017-07-14 20:42:32.11','yyyy-MM-dd hh24:mi:ss:ff') as one_day from dual;

 

select to_char(systimestamp,'yyyy-MM-dd hh24:mi:ss:ff') as today from dual;

 

to_char(sysdate,'yyyy-MM-dd')

 

select to_number(replace(to_char(sysdate,'yyyy-MM-dd'),'-')) from dual;

select to_number(replace(to_char(sysdate,'yyyy-MM-dd'),'-')) as one_number from dual;

 

 

 

 

 

 

 

 

 

 

其他函数

有以下函数不便进行分类,开发之中会经常使用:

No.

函数名

含义

1

数字 nvl (列 | null, 默认值)

空值置换。如果传入的数据时null,则使用默认值,如果不是null,则使用原始数据。

2

数据类型 decode(列 | 字符串 | 数值,比较内容1,显示内容1, 比较内容2,显示内容2,…[,默认显示内容])

条件取值。设置的内容会与每一个比较内容进行比较,如果内容相同,则使用显示内容进行输出,如果都不行同,使用默认内容输出。

 

 

 

 

 

 

示例1:查询emp表所有雇员的雇员编号,姓名,薪资,佣金,年薪。

select empno,ename,sal,comm,(sal+nvl(comm,0))*12 from emp;

 

 

null与所有数据计算后还是null

示例2:将emp表中的职位(办事员、经理)置换为中文。

select empno,ename,job,decode(job,'CLERK','办事员','MANAGER','经理') from emp;

posted on 2017-11-24 10:39  小闵Y  阅读(300)  评论(0编辑  收藏  举报