Oracle基础 (十四)其他函数

SQL日期与字符串转换技巧
本文介绍了SQL中日期转换函数TO_DATE和TO_CHAR的使用方法,包括如何将字符串转换为日期,以及如何从日期中提取年、月、日、时、分、秒等信息,并展示了如何将日期和时间格式化为特定格式。

转换函数:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值