oracle-单行函数-转换函数

-- *******************转换函数(显性、隐性)日期、数字、字符********************
-- 隐性转换,即oracle自动转换
-- number -> varchar2
-- date   -> varchar2
-- varchar2 or char -> number
-- varchar2 or char -> date

-- varchar2 自动转number测试 (测试成功:16)
SELECT '2' + 14 FROM dual; 
-- varchar2 自动转date测试 (测试成功:天数+2)
SELECT '2' + SYSDATE,SYSDATE FROM dual; 

-- 显性转化,to_date,to_number,to_char
SELECT  * FROM jobs;
-- 注意:to_char这里的坑,'2019-06-01'不能写成'2019-6-1',否则查询不到期待的结果
SELECT * FROM jobs WHERE to_char(hire_date,'yyyy-mm-dd') = '2019-06-01';
-- 这里如果里面有其它字符,则需要用双引号包括起来,否则无法识别
SELECT * FROM jobs WHERE to_char(hire_date,'yyyy"年"-mm-dd') = '2019年-06-01';
-- to_date这里没有上面to_char的问题,建议使用此种方式进行日期查询
SELECT * FROM jobs WHERE hire_date = to_date('2019-6-1','yyyy-mm-dd');

-- 这种用法,整数部分的9的个数必须大于实际整数的位数,小数不够会进行round(这里9可替换为0,0等同lpad)
-- L本地(¥),$美元
-- 常用符号:9、0、$(美元)、L(人民币)、.(小数点)、,(千位符)
-- number -> varchar2 (显性转换)
SELECT to_char(23456789.19,'L99,999,999.9') FROM dual; 
-- varchar2 -> number(显性转换)
SELECT to_number('¥15,236.96','L99,999.99') FROM dual; 

你可能感兴趣的:(oracle)