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型別的輸出引數值,其實就是查詢...