문제

Oracle 11G에서 두 날짜 사이에 정수 수를 찾으려고 노력하고 있습니다.

나는 그렇게함으로써 가까워 질 수있다

select sysdate - to_date('2009-10-01', 'yyyy-mm-dd') from dual

그러나 이것은 간격을 반환하고 나는 이것을 정수에 성공하지 못했습니다.

편집 : 분명히 10G에서는 정수로 일수를 반환합니다.

도움이 되었습니까?

해결책 2

나는 그것을 스스로 알아 냈다. 나는 필요하다

select extract(day from sysdate - to_date('2009-10-01', 'yyyy-mm-dd')) from dual

다른 팁

또는 당신은 이것을 할 수있었습니다 :

select trunc(sysdate) - to_date('2009-10-01', 'yyyy-mm-dd') from dual

이것은 하루 종일 여러 번 반환됩니다.

SQL> create view v as 
  2  select trunc(sysdate) - to_date('2009-10-01', 'yyyy-mm-dd') diff 
  3  from dual;

View created.

SQL> select * from v;

      DIFF
----------
        29

SQL> desc v
 Name                   Null?    Type
 ---------------------- -------- ------------------------
 DIFF                            NUMBER(38)

사용해 볼 수 있습니다.

select trunc(sysdate - to_date('2009-10-01', 'yyyy-mm-dd')) as days from dual

이것은 내가 스스로 테스트 한 효과가있을 것입니다.
Column AdmitDate에서 가져온 Sysdate와 날짜의 차이를 제공합니다.

  TABLE SCHEMA:
    CREATE TABLE "ADMIN"."DUESTESTING" 
    (   
  "TOTAL" NUMBER(*,0), 
"DUES" NUMBER(*,0), 
"ADMITDATE" TIMESTAMP (6), 
"DISCHARGEDATE" TIMESTAMP (6)
    )

EXAMPLE:
select TO_NUMBER(trunc(sysdate) - to_date(to_char(admitdate, 'yyyy-mm-dd'),'yyyy-mm-dd')) from admin.duestesting where total=300
  • 월말부터 오늘의 마지막 날, 마지막 날의 마지막 날 :

    SELECT LAST_DAY (TRUNC(SysDate)) - TRUNC(SysDate) + 1 FROM dual
    
  • 정확한 시간 사용 사이의 날 :

    SELECT SysDate - TO_DATE('2018-01-01','YYYY-MM-DD') FROM dual
    
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top