程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 用Oracle時間日期操作來計算工作日的具體方法

用Oracle時間日期操作來計算工作日的具體方法

編輯:Oracle數據庫基礎

以下的文章主要向我們介紹的是如何對Oracle時間日期的操作,以及如何用Oracle時間日期操作來計算工作日的方法的集體描述,以下是文章的具體介紹,望你浏覽完以下的內容會有所收獲。

Oracle時間日期操作

sysdate+(5/24/60/60) 在系統時間基礎上延遲5秒

sysdate+5/24/60 在系統時間基礎上延遲5分鐘

sysdate+5/24 在系統時間基礎上延遲5小時

sysdate+5 在系統時間基礎上延遲5天

add_months(sysdate,-5) 在系統時間基礎上延遲5月

add_months(sysdate,-5*12) 在系統時間基礎上延遲5年

上月末的日期:

  1. select last_day(add_months(sysdate, -1)) from dual; 

本月的最後一秒:

  1. select trunc(add_months(sysdate,1),'MM') - 1/24/60/60 from dual 

本周星期一的日期:

  1. select trunc(sysdate,'day')+1 from dual 

年初至今的天數:

  1. select ceil(sysdate - trunc(sysdate, 'year')) from dual; 

今天是今年的第幾周 :

  1. select to_char(sysdate,'fmww') from dual 

今天是本月的第幾周:

  1. SELECT TO_CHAR(SYSDATE,'WW') - 
    TO_CHAR(TRUNC(SYSDATE,'MM'),'WW') 
    + 1 AS "weekOfMon" FROM dual 

本月的天數

  1. SELECT to_char(last_day(SYSDATE),'dd') days FROM dual 

今年的天數

  1. select add_months(trunc(sysdate,'year'), 12)
     - trunc(sysdate,'year') from dual 

下個星期一的日期

  1. SELECT Next_day(SYSDATE,'monday') FROM dual 

如何用Oracle時間日期操作來計算工作日方法

  1. create table t(s date,e date);  
  2. alter session set nls_date_format = 'yyyy-mm-dd';  
  3. insert into t values('2003-03-01','2003-03-03');  
  4. insert into t values('2003-03-02','2003-03-03');  
  5. insert into t values('2003-03-07','2003-03-08');  
  6. insert into t values('2003-03-07','2003-03-09');  
  7. insert into t values('2003-03-05','2003-03-07');  
  8. insert into t values('2003-02-01','2003-03-31');  

這裡假定日期都是不帶時間的,否則在所有日期前加trunc即可。

  1. select s,e,e-s+1 total_days,  
  2. trunc((e-s+1)/7)*5 + length
    (replace(substr('01111100111110',
    to_char(s,'d'),mod(e-s+1,7)),'0','')) work_days  
  3. from t;  
  4. drop table t;v  
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved