Wie kann ich die Anzahl der Tage zwischen zwei Terminen in Oracle 11g bekommen?
Frage
Ich versuche, eine ganze Anzahl von Tagen zwischen zwei Daten in Oracle 11g zu finden.
Ich kann nahe kommen, indem Sie
select sysdate - to_date('2009-10-01', 'yyyy-mm-dd') from dual
, aber das gibt ein Intervall, und ich habe nicht erfolgreich gewesen, dies zu einer ganzen Zahl zu werfen.
Edit:. Offenbar in 10 g, dies gibt die Anzahl der Tage als eine ganze Zahl
Lösung 2
Habe ich es aus mir. Ich brauche
select extract(day from sysdate - to_date('2009-10-01', 'yyyy-mm-dd')) from dual
Andere Tipps
Oder Sie könnten dies getan haben:
select trunc(sysdate) - to_date('2009-10-01', 'yyyy-mm-dd') from dual
Dies gibt eine Anzahl von ganzen Tagen:
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)
Sie können versuchen, mit:
select trunc(sysdate - to_date('2009-10-01', 'yyyy-mm-dd')) as days from dual
Dies funktioniert habe ich selbst getestet.
Es gibt Unterschied zwischen sysdate und Datum abgerufen aus Spalte admitdate
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
-
Voll Tage zwischen Ende des Monats und starten heute den letzten Tag des Monats:
SELECT LAST_DAY (TRUNC(SysDate)) - TRUNC(SysDate) + 1 FROM dual
-
Tage zwischen genaue Zeit mit:
SELECT SysDate - TO_DATE('2018-01-01','YYYY-MM-DD') FROM dual
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow