Oracle基础 (十四)其他函数

转换函数:

TO_DATE:转换为日期

--将字符串转换为日期
SELECT TO_DATE('2014-12-31', 'yyyy-mm-dd') FROM DUAL;
SELECT TO_DATE('2014-12-31 15:20:45', 'yyyy-mm-dd hh24:mi:ss') FROM DUAL;
SELECT TO_DATE('2014年12月31日', 'yyyy"年"mm"月"dd"日') AS T FROM DUAL;
--两个日期间的天数      
SELECT FLOOR(SYSDATE - TO_DATE('20141201', 'yyyymmdd')) FROM DUAL;

TO_CHAR:转换为字符串

SELECT TO_CHAR(SYSDATE, 'yyyy-mm-dd hh24:mi:ss') AS NOWTIME FROM DUAL; --日期转化为字符串   
SELECT TO_CHAR(SYSDATE, 'yyyy') AS NOWYEAR FROM DUAL;          --获取时间的年   
SELECT TO_CHAR(SYSDATE, 'mm') AS NOWMONTH FROM DUAL;           --获取时间的月   
SELECT TO_CHAR(SYSDATE, 'dd') AS NOWDAY FROM DUAL;             --获取时间的日   
SELECT TO_CHAR(SYSDATE, 'hh24') AS NOWHOUR FROM DUAL;          --获取时间的时   
SELECT TO_CHAR(SYSDATE, 'mi') AS NOWMINUTE FROM DUAL;          --获取时间的分   
SELECT TO_CHAR(SYSDATE, 'ss') AS NOWSECOND FROM DUAL;          --获取时间的秒    
SELECT TO_CHAR(SYSDATE, 'yyyy"年"mm"月"dd"日') AS T FROM DUAL; --带中文的时间格式

详细参数说明 

TO_NUMBER:转换为数字

  

To_number函数中也有很多预定义的固定格式:

9

代表一个数字

0

强迫0显示

$

显示美元符号

L

强制显示一个当地的货币符号

.

显示一个小数点

,

显示一个千位分隔符号

SELECT TO_CHAR(123456.235,'L999900.99')  FROM DUAL         --以当前系统货币格式显示数据,小数部分可以设置保留位数,会进行四舍五入
结果:      ¥12345.24

SELECT TO_NUMBER(TO_CHAR(SYSDATE, 'hh24')) FROM DUAL;    --以数字显示的小时数

其他函数

NVL(exp1,exp2):如果 exp1的值为null,则返回exp2的值,否则返回exp1的值。

SELECT ename,NVL(col, 0) FROM TEST;  --如果col列为null,则返回0

NVL2(exp1,exp2,exp2):

如果exp1的值为null,则返回exp2的值,否则返回exp3的值。

DECODE(value,if1,then1,if2,then2,...else):

如果value的值为if1,则返回then1的值,如果value的值为if2,则返回then2的值,...否则返回else的值。

原文地址:https://www.cnblogs.com/zhengcheng/p/4187216.html