Oracle单行函数(一)

2014-11-24 17:33:50 · 作者: · 浏览: 0

SQL> --字符函数
SQL> select lower('hellO WORld') 转小写,upper('hellO WORld') 转大写,initcap('hello world') 首字母大写
2 from dual;


转小写 转大写 首字母大写
----------- ----------- -----------
hello world HELLO WORLD Hello World


SQL> --substr(a,b) 从a中,第b位开始取,取右边所有的字符
SQL> select substr('Hello World',4) 截取结果 from dual;
SQL> --substr(a,b,c) 从a中,第b位开始取,取c位
SQL> select substr('Hello World',4,4) from dual;


SQL> --length 字符数 lengthb 字节数
SQL> select length('Hello World中国') 字符数, lengthb('Hello World中国') 字节数
2 from dual;
SQL> --instr 在母串中查找子串,找到返回下标(从1开始),否则返回0
SQL> select instr('Hello World','ll') from dual;


INSTR('HELLOWORLD','LL')
------------------------
3
SQL> --lpad 左填充 rpad 右填充
SQL> select lpad('abcd',10,'*') 左,rpad('abcd',10,'*') 右
2 from dual;


左 右
---------- ----------
******abcd abcd******
SQL> --trim 去掉前后指定的字符
SQL> select trim('H' from 'Hello WorldH') from dual;


TRIM('H'FR
----------
ello World


SQL> select replace('Hello World','l','*') from dual;


REPLACE('HE
-----------
He**o Wor*d


SQL> --数字函数
SQL> select ROUND(45.926, 2) 一,ROUND(45.926, 1) 二, ROUND(45.926, 0) 三,
2 ROUND(45.926, -1) 四, ROUND(45.926, -2) 五
3 from dual;


一 二 三 四 五
---------- ---------- ---------- ---------- ----------
45.93 45.9 46 50 0
SQL> ed
已写入 file afiedt.buf


1 select TRUNC(45.926, 2) 一,TRUNC(45.926, 1) 二, TRUNC(45.926, 0) 三,
2 TRUNC(45.926, -1) 四, TRUNC(45.926, -2) 五
3* from dual
SQL> /


一 二 三 四 五
---------- ---------- ---------- ---------- ----------
45.92 45.9 45 40 0


SQL>select MOD(1600,300) from dual;


SQL> --日期函数
SQL> select sysdate from dual;


SYSDATE
--------------
22-10月-12


SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2012-10-22 15:39:21


SQL> select systimestamp from dual;


SYSTIMESTAMP
---------------------------------------------------------------------------
22-10月-12 03.40.05.406000 下午 +08:00


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


TO_CHAR(SYSDATE,'YY
-------------------
2012-10-22 15:40:33


SQL> select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss*ff') from dual;


TO_CHAR(SYSTIMESTAMP,'YYYY-MM
-----------------------------
2012-10-22 15:40:47*218000
SQL> --systimestamp时间戳


SQL>---------------------------------------------------------------




SQL> --昨天 今天 明天
SQL> select (sysdate-1) 昨天, sysdate 今天, (sysdate+1) 明天 from dual;


昨天 今天 明天