Oracle時間戳間隔天數計算

SELECT

(TO_NUMBER(TO_CHAR(b.PAY_TIME,'yyyymmdd')) - TO_NUMBER(TO_CHAR(b.PRE_TIME,'yyyymmdd')))

  FROM TABLE

WHERE 條件

1、先將對應的時間戳字段按照格式轉換爲to_char,再將to_char轉換爲number後計算

 

SELECT TO_NUMBER(TO_CHAR(SYSDATE,'yyyy')) AS YEAR_ID,
       10026 AS KPI_ID,
       bp.MANAGE_DEPART_ID AS DEPT_ID,
       (TO_NUMBER(TO_CHAR(b.PAY_TIME,'yyyymmdd')) - TO_NUMBER(TO_CHAR(b.PRE_TIME,'yyyymmdd'))) / d.KPI_VALUE AS KPI_VALUE,
       '1' AS CREATE_USER_ID,
       SYSDATE AS CREATE_TIME
  FROM table b
  JOIN table bp ON b.PROJECT_ID = bp.PROJECT_ID
  JOIN table d ON bp.MANAGE_DEPART_ID = d.DEPT_ID
 WHERE b.LAST_AUDIT_STATUS = 1
   AND b.APPLY_TIME >= TRUNC(SYSDATE,'yyyy')
   AND b.APPLY_TIME < = ADD_MONTHS(TRUNC(SYSDATE,'yyyy'),12) --預受理時間
   AND d.KPI_ID = 10024;
 

date類型計算天數
將字符串轉日期
select to_date('06/06/2020','mm/dd/yyyy')-to_date('06/01/2020','mm/dd/yyyy') from dual;

date類型當前時間與某一date類型字段天數差

select trunc(sysdate) - trunc(create_time) from table;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章