日期函数
35.系统时间
S:select getdate() value
O:select sysdate value from dual 36.前后几日
直接与整数相加减 37.求日期
S:select convert(char(10),getdate(),20) value
O:select trunc(sysdate) value from dual
select to_char(sysdate,'yyyy-mm-dd') value from dual 38.求时间
S:select convert(char(8),getdate(),108) value
O:select to_char(sysdate,'hh24:mm:ss') value from dual 39.取日期时间的其他部分
S:DATEPART 和 DATENAME 函数 (第一个参数决定)
O:to_char函数 第二个参数决定 参数---------------------------------下表需要补充
year yy, yyyy
quarter qq, q (季度)
month mm, m (m O无效)
dayofyear dy, y (O表星期)
day dd, d (d O无效)
week wk, ww (wk O无效)
weekday dw (O不清楚)
Hour hh,hh12,hh24 (hh12,hh24 S无效)
minute mi, n (n O无效)
second ss, s (s O无效)
millisecond ms (O无效)
---------------------------------------------- 40.当月最后一天
S:不知道
O:select LAST_DAY(sysdate) value from dual 41.本星期的某一天(比如星期日)
S:不知道
O:SELECT Next_day(sysdate,7) vaule FROM DUAL; 42.字符串转时间
S:可以直接转或者select cast('2004-09-08'as datetime) value
O:SELECT To_date('2004-01-05 22:09:38','yyyy-mm-dd hh24-mi-ss') vaule FROM DUAL; 43.求两日期某一部分的差(比如秒)
S:select datediff(ss,getdate(),getdate()+12.3) value
O:直接用两个日期相减(比如d1-d2=12.3)
SELECT (d1-d2)*24*60*60 vaule FROM DUAL; 44.根据差值求新的日期(比如分钟)
S:select dateadd(mi,8,getdate()) value
O:SELECT sysdate+8/60/24 vaule FROM DUAL; 45.求不同时区时间
S:不知道
O:SELECT New_time(sysdate,'ydt','gmt' ) vaule FROM DUAL;
35.系统时间
S:select getdate() value
O:select sysdate value from dual 36.前后几日
直接与整数相加减 37.求日期
S:select convert(char(10),getdate(),20) value
O:select trunc(sysdate) value from dual
select to_char(sysdate,'yyyy-mm-dd') value from dual 38.求时间
S:select convert(char(8),getdate(),108) value
O:select to_char(sysdate,'hh24:mm:ss') value from dual 39.取日期时间的其他部分
S:DATEPART 和 DATENAME 函数 (第一个参数决定)
O:to_char函数 第二个参数决定 参数---------------------------------下表需要补充
year yy, yyyy
quarter qq, q (季度)
month mm, m (m O无效)
dayofyear dy, y (O表星期)
day dd, d (d O无效)
week wk, ww (wk O无效)
weekday dw (O不清楚)
Hour hh,hh12,hh24 (hh12,hh24 S无效)
minute mi, n (n O无效)
second ss, s (s O无效)
millisecond ms (O无效)
---------------------------------------------- 40.当月最后一天
S:不知道
O:select LAST_DAY(sysdate) value from dual 41.本星期的某一天(比如星期日)
S:不知道
O:SELECT Next_day(sysdate,7) vaule FROM DUAL; 42.字符串转时间
S:可以直接转或者select cast('2004-09-08'as datetime) value
O:SELECT To_date('2004-01-05 22:09:38','yyyy-mm-dd hh24-mi-ss') vaule FROM DUAL; 43.求两日期某一部分的差(比如秒)
S:select datediff(ss,getdate(),getdate()+12.3) value
O:直接用两个日期相减(比如d1-d2=12.3)
SELECT (d1-d2)*24*60*60 vaule FROM DUAL; 44.根据差值求新的日期(比如分钟)
S:select dateadd(mi,8,getdate()) value
O:SELECT sysdate+8/60/24 vaule FROM DUAL; 45.求不同时区时间
S:不知道
O:SELECT New_time(sysdate,'ydt','gmt' ) vaule FROM DUAL;
to_date('2005-04-19','yyyy-mm-dd')
--OUTPUT
SQL> create or replace function fun_test
2 return date
3 as
4 is_date date ;
5 begin
6 is_date := sysdate ;
7 return is_date;
8
9 end;
10 /函數已被建立目前歷時: 00:00:00.47
SQL> SELECT fun_test FROM DUAL;FUN_TEST
-------------------
2005/04/19 13:41:04目前歷時: 00:00:00.15---INPUT
SQL> create or replace procedure pro_test
2 (
3 var_begin in date ,
4 var_end in date
5 )
6 as
7 is_dates number(10);
8 begin
9 is_dates := var_end - var_begin ;
10 dbms_output.put_line('The days of begin and end is : '||to_char(is_dates));
11 end;
12 /程序已被建立目前歷時: 00:00:00.31
SQL> exec pro_test(to_date('2005/01/01','yyyy/mm/dd'),to_date('2005/01/10','yyyy/mm/dd'));
The days of begin and end is : 9PL/SQL 程序順利完成目前歷時: 00:00:00.16
http://www.cnoug.org/viewthread.php?tid=28366