【IT168 技术文档】
ORACLEERP开发基础之前言
http://tech.it168.com/a2009/0427/274/000000274048.shtml
ORACLE ERP开发之OracleForms基础(一)Forms设置部分
http://tech.it168.com/a2009/0428/274/000000274178.shtml
ORACLEERP开发基础之OracleForms基础(二)FORMS代码部份
http://tech.it168.com/a2009/0428/274/000000274236.shtml
ORACLE ERP开发基础之Oracle Report基础
http://tech.it168.com/a2009/0429/274/000000274343.shtml
常用函数
substr函数
Example:SELECT substr('teach',0,3) FROM DUAL
Effect: tea
Example: SELECT substr('teach',3,3) FROM DUAL
Effect: ach
Lpad/Rpad函数
Example: SELECT LPAD('TEACH',4) FROM DUAL
Effect: teac
Example: SELECT LPAD('TEACH',10,'5') FROM DUAL
Effect: 55555TEACH
日期函数
Oracle的日期函数比较丰富,不象SQL SERVER只有dateadd、datediff之类。
1.系统时间
SQL:select getdate() value
Oracle:select sysdate value from dual
2.前后几日
都支持直接与整数相加减
3.求日期
SQL:select convert(char(10),getdate(),20) value
Oracle:select trunc(sysdate) value from dual
select to_char(sysdate,'yyyy-mm-dd') value from dual
4.求时间
SQL:select convert(char(8),getdate(),108) value
Oracle:select to_char(sysdate,'hh24:mm:ss') value from dual
5.取日期时间的其他部分
SQL:DATEPART 和 DATENAME 函数 (第一个参数决定)
Oracle:to_char函数 第二个参数决定
下表补充说明SQL与ORACLE在取参数时的区别
6.当月最后一天
SQL:比较烦琐,先求当月的第一天,然后求得下月的第一天,最后减一得到当月最后一天。
Oracle:select LAST_DAY(sysdate) value from dual
7.本星期的某一天(比如星期日)
SQL:week函数
Oracle:SELECT Next_day(sysdate,7) vaule FROM DUAL;
8.字符串转时间
SQL:可以直接转或者select cast('2004-09-08'as datetime) value
O:SELECT To_date('2008-01-05 22:09:38','yyyy-mm-dd hh24-mi-ss') vaule FROM DUAL;
9.求两日期某一部分的差(比如秒)
SQL:select datediff(ss,getdate(),getdate()+12.3) value
Oracle:直接用两个日期相减(比如d1-d2=12.3)
SELECT (d1-d2)*24*60*60 vaule FROM DUAL;
10.根据差值求新的日期(比如分钟)
SQL:select dateadd(mi,8,getdate()) value
Oracle:SELECT sysdate+8/60/24 vaule FROM DUAL;
11.当月第一天
SQL:select dateadd(getdate,-day)
O: select trunc(sysdate,'mm') from dual;