oracle中怎麼得到日期相減除去週末後的天數

時間 2022-05-01 19:44:56

1樓:匿名使用者

以2015年12月1日至2015年12月31日為例。其中週六和週日算週末。

查詢除週末以外的天數(oracle中以週日為1,周一為2……週六為7),可用如下語句:

with t as

(select rownum-1 rn from dual connect by rownum<=100)

select count(*) from t

where to_char(to_date('2015-12-01','yyyy-mm-dd')+rn,'yyyy-mm-dd') between '2015-12-01' and '2015-12-31'

and to_char(to_date('2015-12-01','yyyy-mm-dd')+rn,'d') not in (6,7);

查詢結果:

查日曆可得,2015年12月1日至2015年12月31日期間,週六週日的天數合計8天,31-8=23,與語句所得結果一致。

2樓:匿名使用者

時間格式引數time1,time2

to_char(time1,'ww') 獲取時間是一年中的多少周to_char(time1,'ddd')獲取時間是一年中的多少天那麼你的需求寫出來就是這樣的:

to_char(time1,'ddd')-to_char(time2,'ddd')-2*(to_char(time1,'ww')-to_char(time2,'ww'))

3樓:匿名使用者

也許用儲存過程能夠實現

a 是2個日期之間相差的天數

b 是除去週末(週六和週日)後的天數

b = a - a/7*2

我只是提供乙個思路 具體的還是要你自己寫了

4樓:我在哪我是誰

由於存在不是整週,和起始日期,終止日期星期不定的複雜情況,所以簡單的sql語句貌似無法實現.

寫個函式,從起始日期開始,判斷不是週末的話就加1天,只到終止日期.

create or replace function day_count(t1 date,t2 date)

return number

is n number:=0;

tt date;

begin

tt:=t1;

while tt<=t2 loop

n:=n+(case when to_char(tt,'day') in('星期六','星期日') then 0 else 1 end);

tt:=tt+1;

end loop;

return n;

end;

/--注意:其中的'星期六','星期日'這種表示跟字符集有關,可以通過

select to_char(sysdate) from dual; 測試一下.

測試程式:

declare nn number;

begin

nn:=day_count(to_date('2010-08-01','yyyy-mm-dd'),to_date('2010-08-23','yyyy-mm-dd'));

dbms_output.put_line(nn);

end;/

5樓:雷你大爺的池

count下總共幾周,然後乘以2

excel中如何計算兩個日期間天數除去週六日和國家假期

6樓:匿名使用者

方法一:

輸入以下公式

=networkdays.intl(a1,a2,11)得到a1為開始日期,a2為結束日期,不包括星期天在內的天數方法二:

輸入=sumproduct((weekday(row(39965:39980),2)<>7)*1)

公式表示:將a1序列號和a2序列號組成的行號,通過weekday(資料,2)計算,不為7的資料,就是符合要求的天數。

如果每週按兩個休息日計算,那麼可以使用

=networkdays(a1,a2)

7樓:匿名使用者

=networkdays(初始日期,結束日期,國家假期列表)

oracle 兩個date日期相減,怎麼得到天數

8樓:情又獨中

日期格式直接減

select to_date('20130120','yyyymmdd')-to_date('20130110','yyyymmdd') from dual;

結果為10

怎樣讓excel計算兩個日期相減後的天數要去掉週日的?

9樓:

去除週六、週日的工作日:

=networkdays(a1,b1)

只去掉週日:

如果是2013以後版本只去掉週日:

=networkdays.intl(a1,b1,11)=networkdays.intl(a1,b1,11)networkdays.

intl()這個函式是使用自定義週末引數返回兩個日期之間的完整工作日數。

excel怎麼將兩個日期相減得到天數?

10樓:道初潛珉

先判斷a列日期和固定日期的大小關係,然後把較大的作為結束日期,較小的作為開始日期

=if(a1<=datevalue("2014/12/1"),datedif(a1,"2014/12/1","d"),datedif("2014/12/1",a1,"d"))

在c1輸入:

=datedif(text(left(a1,8),"0-00-00"),text(left(b1,8),"0-00-00"),"d")

oracle中兩個to_date相減能得到天數嗎

11樓:4終

oracle中兩個to_date相減能得到天數,解決方法如下:

1、首先開啟oracle管理工具,執行如下圖所示的語句來查詢一下系統時間,會看到顯示的並不是平常用到的。

2、接下來就可以通過to_char函式來對日期函式進行轉換一下,如下圖所示,第乙個引數是時間,第二個是格式化型別。

3、另外也可以通過to_char函式來對日期進行拆分,分別取出年月日,如下圖所示。

4、接下來還可以通過to_date函式來對字串進行日期轉換,如下圖所示。

5、最後,還可以通過to_number函式來將字元數字轉換為數字來進行運算,如下圖所示。

12樓:匿名使用者

oracle中兩個to_date相減得到的是兩個日期間的天數。

語句如:

select to_date('2015-12-25','yyyy-mm-dd')-to_date('2015-12-01','yyyy-mm-dd') from dual;

結果為:

13樓:匿名使用者

可以得到,而且貌似只能得到天數,如果想得到小時數或者分鐘數還需要轉化一下

14樓:匿名使用者

有點bs這種問題,實踐下不就知道了

select trunc(to_date('20120319 140000','yyyymmdd hh24miss') - to_date('20120317 010000','yyyymmdd hh24miss')) from dual

sql中兩個日期字段相減如何去掉週末(週六,週日)得到相差的天數

15樓:志當存高遠

networkdays(start_date,end_date,holidays)函式是專門用於計算兩個日期值之間完整的工作日數值。這個工作日數值將不包括雙休日和專門指定的其他各種假期。

點選「工具」選單中的「載入巨集」,找到「分析工具庫」,給它乙個小勾,再「確定」。原來,這兩個函式是嵌於「分析工具庫」這個載入巨集中的excel擴充套件函式,而excel在預設狀態下是不載入這個載入巨集的networkdays(start_date,end_date,holidays)函式是專門用於計算兩個日期值之間完整的工作日數值。這個工作日數值將不包括雙休日和專門指定的其他各種假期。

點選「工具」選單中的「載入巨集」,找到「分析工具庫」,給它乙個小勾,再「確定」。原來,這兩個函式是嵌於「分析工具庫」這個載入巨集中的excel擴充套件函式,而excel在預設狀態下是不載入這個載入巨集的

oracle中怎麼擷取timestamp欄位的時分秒

其實timestamp可以直接比較大小。擷取以後還是timestamp型別,這個,這個如何做?select systimestamp,to char systimestamp,hh24 mi ss.ff6 from dual 或者你要的是乙個針對秒的數字,那就 select to char syst...

本地oracle中toad怎麼配置

你的那個本地網路服務名應該配置的有問題。用oracle的net configuration assistant配置好網路服務名,並測試通過後,再用toad工具連線。第一步 安裝oracle資料庫 安裝oracle資料庫的時候,需要注意以下幾點 1 直接點選安裝包最外面的那個小圖示setup.exe即...

oracle中怎麼在使用者(B)中查詢另使用者(A)的use tables表

select from a.表明 這樣就行。如何把oracle某個使用者a下,所有表的查詢,授權給另乙個使用者b。search一下就出來了 oracle資料庫中如何查詢乙個使用者a下面所有的表的資訊 oracle中在同乙個資料庫裡面使用者a如何訪問使用者b建立的表啊?usera要有訪問userb下表...

oracle中怎麼判斷查詢的列中是否包含字母

看看下邊的語句可不可以 select case when regexp like 欄位名,a z a z then 包含字母 else 不包含字母 endfrom 表名字正規表示式函式 regexp like關鍵的引數是第二個 a z a z 其中.表示匹配任何單字元,換行符除外 a z 是小寫字母...

在c中怎麼獲取oracle儲存過程中Cursor型別的輸出引數

oralce引用游標一般用來返回表資料,在c 程式端用datareader,和datareader的用法一樣,通過datareader就可以讀取想要的資料。用executereader方法去執行這個儲存過程,會返回乙個datareader物件,這裡面就包含了cursor型別的輸出引數值,其實就是查詢...