PostgreSQL: Wie berechnen DATUM Unterschied in PostgreSQL?
Hier muss ich zur Berechnung der Differenz der beiden Daten in der PostgreSQL.
In SQL Server: Wie wir in SQL Server ist es viel einfacher.
DATEDIFF(Day, MIN(joindate), MAX(joindate)) AS DateDifference;
Meinen Versuchen: ich versuche mit dem folgenden script:
(Max(joindate) - Min(joindate)) as DateDifference;
Frage:
- Ist meine Methode richtig ist?
- Gibt es eine Funktion in PostgreSQL um diese zu berechnen?
InformationsquelleAutor Meem | 2014-07-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre Berechnung ist korrekt für
DATE
Typen, aber wenn deine Werte sind timestamps, sollten Sie wahrscheinlich verwendenEXTRAKT
(oder DATE_PART) um sicher zu sein, bekommen nur die Differenz in voll Tage;Ein SQLfiddle zum testen mit. Beachten Sie die timestamp-Differenz als 1 Sekunde weniger als 2 volle Tage.
SELECT EXTRACT(DAY FROM TO_TIMESTAMP('2016-01-01', 'YYYY-MM-DD')-TO_TIMESTAMP('2015-03-01', 'YYYY-MM-DD'));
gibt 306 Tage, die würde scheinen korrekt zu sein (und größer als 31).Sind Sie richtig. Gelöscht mein Kommentar.
InformationsquelleAutor Joachim Isaksson
CAST beiden Felder Datentyp DATE und Sie können einen minus:
Test-Fall:
Ergebnis: 31
Oder erstellen Sie eine Funktion datediff():
datediff(joindate,joindate)
Recht?Das ist richtig
innerhalb einer sql-Abfrage, es wird nicht funktionieren, von selbst (nur durch das hinzufügen dieser für zukünftige Leser)
InformationsquelleAutor Frank Heikens
Dies ist, wie ich das üblicherweise Tue. Eine einfache Anzahl der Tage, die Perspektive von B minus A.
InformationsquelleAutor anoraq