SQL> select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2022-01-30 12:57:45
SQL> select to_char(sysdate,'YYYY-MM-DD HH12:MI:SS') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2022-01-30 12:58:01
SQL> select to_date('2015-5-22','YYYY-MM-DD') from dual;
TO_DATE('2015-
--------------
22-5月 -15
SQL> select to_char(12345.678,'$99,999.999') from dual;
TO_CHAR(1234
------------
$12,345.678
SQL> select to_char(12345.678,'$99,999,999') from dual;
TO_CHAR(1234
------------
$12,346
SQL> select to_char(12345.678,'S99,999,999') from dual;
TO_CHAR(123
-----------
+12,346
SQL> select to_number('$1,000','$9999') from dual;
TO_NUMBER('$1,000','$9999')
---------------------------
5.转换函数
5.1日期转换成字符:
to_char(date,fmt,params)
date:将要转换的日期:
fmt:转换的格式(见截图)
params:日期的语言,通常都不写,取默认
select sysdate from dual;--2021/5/12 0:48:37
select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual;--2021-05-12 00:48:24
5.2字符转换成日期:
to_date(char,fmt,params):按照系统默认格式显示日期
select to_date('2021-05-12','YYYY_MM_DD') from dual;--2021/5/12
5.3数字转换成字符:
to_char(number,fmt);
fmt格式比如下面这种:
9:显示数字并忽略前面的0
0:显示数字,位数不足,用0补齐
.或D:显示小数点
,或G:显示千位符
$:美元符号
s:加正负号(前后都可以,但是不能同时都加上)
select to_char(12345.678,'$99,999.999') from dual;-- $12,345.678
转换的时候注意小数点,否则会四舍五入
5.4字符转换成数字:
to_number(char,fmt)
fmt是转换的格式,可省略
select to_number('$1,000','$9999') from dual;----1000
-- 转换函数 - 对不同数据的转换
1.日期转换字符的函数
TO_CHAR(转换的日期[,转换的格式[,日期的语言]])
默认 格式:DD-MON-RR
--日期的语音 一般不用指定
格式有 YY YYYY YEAR,MM MONTH ,DD DAY ,HH24 HH12,MI SS
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; --示例
2.字符转换成日期的函数
TO_DATE(要转换的日期[,要转换的格式[,日期的语言]])
select to_date('2015-11-11','yyyy-mm-dd hh24:mi:ss') from dual;
3.数字转换字符的函数
TO_CHAR (要转换的数字,[,转换格式])
-- 转换格式 9:显示数字并忽略前面的0 ,0:显示数字,位数不足,用0补齐
-- .或D:显示小数点 , ,或G:显示千位数 $:美元符号, S加正负号(前后都可以)
select to_char(1234.654) from dual;
select to_char(1234.654,'s$99,90.9999') from dual;
4.字符转换成数字的函数
TO_NUMBER(要转换的字符,[,格式])
select to_number('$1,000','$9999') from dual;
使用小技巧
字符转换成数字例子
转换 函数
转换函数
1、日期转换成字符的函数
默认格式:DD-MON-RR
涉及到的参数
2、字符转换成日期的函数
3、数字转换成字符的函数
4、字符转换成数字的函数
to_char和to_number还真的挺望文生义的
日期转字符串:
TO_CHAR(date,fmt,params)
date 日期数据
fmt:转换格式: YYYY-MM-DD HH24:MI:SS
params:转换语言,通常省略
字符转日期
TO_DATE(char,fmt,params)
数字转字符串
TO_CHAR(number,fmt)
fmt格式:有以下取值:
9: 显示数字并忽略前面的0
0:显示数字,位数不足用0补齐
.或D:显示小数点
,或G:显示千位符
$:显示美元符号
S:加上正负号
字符转数字
TO_NUMBER(char, fmt)
fmt 和上面一样,可以省略。
转换函数
日期转换成字符的函数:to-char(date[,fmt[,params]])【date--将要转换的日期,fmt--转换成的格式,params--日期的语言(此参数通常不写)】
日期默认格式:dd-mon-rr
fmt格式定义:yy【两位的年】 yyyy【四位的年】 year【表示成英文形式】
mm【两位的月份】 month【表示英文的月份】
dd【两位的天数】 day【表示英文的日】
hh24【二十四小时制】 hh12【十二小时制】
mi【分钟】 ss【秒】
例子:
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2019-03-26 15:04:33
SQL> select to_char(sysdate,'yy-mm-dd hh12:mi:ss') from dual;
TO_CHAR(SYSDATE,'
-----------------
19-03-26 03:05:31
SQL> select to_char(sysdate,'year-month-day hh12:mi:ss') from dual;
TO_CHAR(SYSDATE,'YEAR-MONTH-DAYHH12:MI:SS')
--------------------------------------------------------------------
twenty nineteen-3月 -星期二 03:07:23
TO_CHAR(SYSDATE,'YEAR-MM-DAYHH12:MI:SS')
----------------------------------------------------------------
twenty nineteen-03-星期二 03:09:00
SQL> select to_char(sysdate,'year-mm-dd hh12:mi:ss') from dual;
TO_CHAR(SYSDATE,'YEAR-MM-DDHH12:MI:SS')
---------------------------------------------------------
twenty nineteen-03-26 03:09:29
字符转换为日期的函数:to_date(date[,fmt[,params]])【to_date()按照系统默认格式显示日期】 下例:
SQL> select to_date('2019-3-26','yyyy-mm-dd') from dual;
TO_DATE('2019-
--------------
26-3月 -19
数字转换为字符的函数:to_char(number[,fmt])
9:显示数字并忽视前面的0
0:显示数字,位数不足用0补齐
.或D:显示小数点
,或G:显示千位符
$:美元符号
S:加正负号(前后都可以,但不能同时加在前后)
SQL> select to_char(12345.678,'$99999.999') from dual;
TO_CHAR(123
-----------
$12345.678
SQL> select to_char(12345.678,'$99,999.999') from dual;
TO_CHAR(1234
------------
$12,345.678
SQL> select to_char(12345.678,'$99,999,999') from dual;
TO_CHAR(1234
------------
$12,346
SQL> select to_char(12345.678,'$s99,999,999') from dual;
select to_char(12345.678,'$s99,999,999') from dual
*
第 1 行出现错误:
ORA-01481: 无效的数字格式模型
SQL> select to_char(12345.678,'s99,999,999') from dual;
TO_CHAR(123
-----------
+12,346
字符转换成数字的函数:to_number(char[,fmt])
SQL> select to_number('$1000','9999') from dual;
select to_number('$1000','9999') from dual
*
第 1 行出现错误:
ORA-01722: 无效数字
SQL> select to_number('$1000','$9999') from dual;
TO_NUMBER('$1000','$9999')
--------------------------
1000
转换函数
日期转换成字符的函数:to-char(date[,fmt[,params]])【date--将要转换的日期,fmt--转换成的格式,params--日期的语言(此参数通常不写)】
日期默认格式:dd-mon-rr
fmt格式定义:yy【两位的年】 yyyy【四位的年】 year【表示成英文形式】
mm【两位的月份】 month【表示英文的月份】
dd【两位的天数】 day【表示英文的日】
hh24【二十四小时制】 hh12【十二小时制】
mi【分钟】 ss【秒】
例子:
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2019-03-26 15:04:33
SQL> select to_char(sysdate,'yy-mm-dd hh12:mi:ss') from dual;
TO_CHAR(SYSDATE,'
-----------------
19-03-26 03:05:31
SQL> select to_char(sysdate,'year-month-day hh12:mi:ss') from dual;
TO_CHAR(SYSDATE,'YEAR-MONTH-DAYHH12:MI:SS')
--------------------------------------------------------------------
twenty nineteen-3月 -星期二 03:07:23
TO_CHAR(SYSDATE,'YEAR-MM-DAYHH12:MI:SS')
----------------------------------------------------------------
twenty nineteen-03-星期二 03:09:00
SQL> select to_char(sysdate,'year-mm-dd hh12:mi:ss') from dual;
TO_CHAR(SYSDATE,'YEAR-MM-DDHH12:MI:SS')
---------------------------------------------------------
twenty nineteen-03-26 03:09:29
字符转换为日期的函数:to_date(date[,fmt[,params]])【to_date()按照系统默认格式显示日期】 下例:
SQL> select to_date('2019-3-26','yyyy-mm-dd') from dual;
TO_DATE('2019-
--------------
26-3月 -19
数字转换为字符的函数:to_char(number[,fmt])
9:显示数字并忽视前面的0
0:显示数字,位数不足用0补齐
.或D:显示小数点
,或G:显示千位符
$:美元符号
S:加正负号(前后都可以,但不能同时加在前后)
SQL> select to_char(12345.678,'$99999.999') from dual;
TO_CHAR(123
-----------
$12345.678
SQL> select to_char(12345.678,'$99,999.999') from dual;
TO_CHAR(1234
------------
$12,345.678
SQL> select to_char(12345.678,'$99,999,999') from dual;
TO_CHAR(1234
------------
$12,346
SQL> select to_char(12345.678,'$s99,999,999') from dual;
select to_char(12345.678,'$s99,999,999') from dual
*
第 1 行出现错误:
ORA-01481: 无效的数字格式模型
SQL> select to_char(12345.678,'s99,999,999') from dual;
TO_CHAR(123
-----------
+12,346
字符转换成数字的函数:to_number(char[,fmt])
SQL> select to_number('$1000','9999') from dual;
select to_number('$1000','9999') from dual
*
第 1 行出现错误:
ORA-01722: 无效数字
SQL> select to_number('$1000','$9999') from dual;
TO_NUMBER('$1000','$9999')
--------------------------
1000
转化函数
日期转换成字符的函数
TO_CHAR(date[,fmt[,params]])
参数说明:
date:将要转换的日期
fmt:转换的格式
params:日期的语言(默认系统语言,此参数可省略)
select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual;
----结果:2019-03-06 13:17:48
字符转换成日期的函数
TO_DATE(char[,fmt[,params]])
注意:TO_DATE()按照系统默认格式显示日期
数字转换成字符的函数
TO_CHAR(number[,fmt])
9:显示数字并忽略前面的0
0:显示数字,位数不足,用零补齐
.或D:显示小数点
,或者G:显示千位符
$:美元符号
S:加正负号(前后都可以)
字符转换成数字的函数
TO_NUMBER(char[,fmt])
fmt是转换的格式,可以省略
select to_number('$1,000','$9999') from dual;
----结果为 1000
日期的格式
日期转换字符的函数:TO_CHAR(date,fmt)
date:将要转换的日期; fmt:转换的格式
SELECT TO_CHAR(syedate,'yyyy-mm-dd hh24:mi:ss') from dual;
字符转日期的函数:TO_DATE(char,fmt)
SELECT TO_DATE('2019-09-19','yyyy-mm-dd')from dual;
注:to_date()按照系统默认的格式显示日期
数字转换字符的函数
TO_CHAR(number,fmt)
9显示数字忽略前面的0;0显示数字,位数不足,用0补齐
.或D显示小数点;,或G显示千位符;S加正负号
select to_char(12345.678,'99,999.999')from dual
返回12,345.678
字符转换数字的函数
TO_NUMBER(char,fmt) fmt是转换的格式,可以省略;
select to_number('123','999')from dual;
返回123