Frage

Ich brauche eine Möglichkeit, die Anzahl der Tage zwischen zwei Datumsangaben in SQL zu bestimmen.

Antwort in ANSI SQL sein muss.

War es hilfreich?

Lösung

ANSI SQL-92 definiert DATE - DATE als Intervall-Typ zurück. Sie sollen Skalare aus zeitlichen Abständen in der Lage sein mit der gleichen Methode zu extrahieren, wie sie von den Daten zu extrahieren mit - sinnigerweise -. Die Funktion EXTRACT (4.5.3)

  

arbeitet auf   und ein DateTime- oder Intervall Gibt eine   exakter numerischer Wert der vertretende   Wert einer Komponente der Datumzeit   oder Intervall.

Dies ist jedoch sehr schlecht in den meisten Datenbanken implementiert. Du bist wahrscheinlich mit etwas Datenbank spezifischer stecken. DATEDIFF ist ziemlich gut auf verschiedenen Plattformen implementiert.

Hier ist die „richtige“ Art und Weise, es zu tun.

SELECT EXTRACT(DAY FROM DATE '2009-01-01' - DATE '2009-05-05') FROM DUAL;

Viel Glück!

scroll top