oracle 計算兩個時間的間隔_Oracle 兩個時間內有幾個週末
阿新 • • 發佈:2021-01-01
技術標籤:oracle 計算兩個時間的間隔
--------------求兩個時間段內有幾天週末包含這兩個時間段
SELECTcount(*)FROM(SELECTrownumrnumFROMall_objectsWHEREROWNUM<=TO_DATE('2019-07-13','yyyy-MM-dd')-TO_DATE('2019-06-30','yyyy-MM-dd')+1)WHERE to_CHAR(TO_DATE('2019-06-30','yyyy-MM-dd') + rnum - 1,'D') IN ('1','7');
--------------------------------查詢出兩個時間見內有幾個工作日(好用,sql複雜)select (trunc(to_date('2019-07-07','yyyy-mm-dd') - to_date('2019-06-30','yyyy-mm-dd')) - ((case WHEN (8 - to_number(to_char(to_date('2019-06-30','yyyy-mm-dd'),'D'))) > trunc(to_date('2019-07-07','yyyy-mm-dd') - to_date('2019-06-30','yyyy-mm-dd')) + 1 THEN 0 ELSE trunc((trunc(to_date('2019-07-07','yyyy-mm-dd') - to_date('2019-06-30','yyyy-mm-dd')) - (8 - to_number(to_char(to_date('2019-06-30','yyyy-mm-dd'),'D'))))/7) + 1 END) + (case WHEN mod(8 - to_char(to_date('2019-06-30','yyyy-mm-dd'), 'D'), 7) > trunc(to_date('2019-07-07','yyyy-mm-dd') - to_date('2019-06-30','yyyy-mm-dd')) - 1 THEN 0 ELSE trunc((trunc(to_date('2019-07-07','yyyy-mm-dd') - to_date('2019-06-30','yyyy-mm-dd')) - (mod(8 - to_char(to_date('2019-06-30','yyyy-mm-dd'),'D'),7) + 1))/7) + 1 END))) as workingdays from dual
----------總結
泛型最好不要有重複sql :TO_DATE('2019-01-01 14:30','yyyy-mm-dd hh24:mi')java:SimpleDateFormat sdf =newSimpleDateFormat("yyyy-MM-ddHH:mm");