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;昨天 今天 明天
-------------- -------------- --------------
21-10月-12 22-10月-12 23-10月-12
SQL> --员工的工龄
SQL> select ename,hiredate,(sysdate-hiredate) 天,(sysdate-hiredate)/7 星期,
2 (sysdate-hiredate)/30 月,(sysdate-hiredate)/365 年
3 from emp;ENAME HIREDATE 天 星期 月 年
---------- -------------- ---------- ---------- ---------- ----------
SMITH 17-12月-80 11632.6571 1661.80815 387.755235 31.8702933
ALLEN 20-2月 -81 11567.6571 1652.52244 385.588569 31.6922111
WARD 22-2月 -81 11565.6571 1652.23672 385.521902 31.6867317
JONES 02-4月 -81 11526.6571 1646.66529 384.221902 31.5798824
MARTIN 28-9月 -81 11347.6571 1621.09387 378.255235 31.0894714
BLAKE 01-5月 -81 11497.6571 1642.52244 383.255235 31.5004303
CLARK 09-6月 -81 11458.6571 1636.95101 381.955235 31.393581
SCOTT 13-7月 -87 9233.65706 1319.09387 307.788569 25.2976906
KING 17-11月-81 11297.6571 1613.95101 376.588569 30.9524851
TURNER 08-9月 -81 11367.6571 1623.95101 378.921902 31.1442659
ADAMS 13-7月 -87 9233.65706 1319.09387 307.788569 25.2976906 ENAME HIREDATE 天 星期 月 年
---------- -------------- ---------- ---------- ---------- ----------
JAMES 03-12月-81 11281.6571 1611.66529 376.055235 30.9086495
FORD 03-12月-81 11281.6571 1611.66529 376.055235 30.9086495
MILLER 23-1月 -82 11230.6571 1604.37958 374.355235 30.7689235 已选择14行。
SQL> select hiredate+sysdate from emp;
select hiredate+sysdate from emp
*
第 1 行出现错误:
ORA-00975: 不允许日期 + 日期
SQL>-- 时间不允许相加SQL> --last_day 某月的最后一天SQL> select last_day(sysdate) from dual;
SQL> --MONTHS_BETWEEN 计算工龄
SQL> select (sysdate-hiredate)/30 一,MONTHS_BETWEEN(sysdate,hiredate) 二
2 from emp; 一 二
---------- ----------
387.755329 382.182577
385.588662 380.085802
385.521996 380
384.221996 378.666448
378.255329 372.827738
383.255329 377.698706
381.955329 376.440641
307.788662 303.311609
376.588662 371.182577
378.921996 373.472899
307.788662 303.311609 一 二
---------- ----------
376.055329 370.634189
376.055329 370.634189
374.355329 368.989028 已选择14行。
SQL> --114月后
SQL> select add_months(sysdate,114) from dual;
SQL> --从今天开始算(2012.10.22星期一),下一个星期一
SQL> select next_day(sysdate,"星期一") from dual;NEXT_DAY(SYSDA
--------------
29-10月-12
SQL> --从今天开始算(2012.10.22星期一),下一个星期二
SQL> select next_day(sysdate,"星期二") from dual;NEXT_DAY(SYSDA
--------------
23-10月-12
SQL> --对日期进行四舍五入
SQL> select round(sysdate,"month") 一,round(sysdate,"year") 二 from dual;SQL> --数据类型转换
SQL> --隐式转换的前提: 被转换对象是可以转换的
SQL> --显式转换
SQL> select to_char(sysdate,"yyyy-mm-dd hh24:mi:ss"今天是"day") from dual;SQL> --查询员工的薪水: 货币符号,两位小数,千位符
SQL> select sal, to_char(sal,"L9,999.99") from emp; SQL> --通用函数
SQL> --nvl2(a,b,c) 当a=null时,返回c,否则返回b
SQL> select sal*12+nvl2(comm,comm,0) from emp;SQL> --nullif(a,b) 当a=b时,返回null,否则返回a
SQL> select nullif("abc","abc") from dual;
SQL> --COALESCE 从左至右找到第一个不为null的值
SQL> select comm,sal,COALESCE(comm,sal) from emp;
Oracle多行函数(组函数)Flume-ng将数据插入HBase-0.96.0相关资讯 Oracle函数 Oracle单行函数
- Oracle字符串函数总结 (06月20日)
- Oracle lag()与lead() 函数 (12/01/2015 20:41:24)
- Oracle ascii函数 (07/26/2015 08:46:01)
| - Oracle使用简单函数 (06月09日)
- REGEXP_SUBSTR函数的整理 (08/20/2015 20:41:01)
- Oracle dump函数 (07/26/2015 08:40:01)
|
本文评论 查看全部评论 (0)