SQL für Datum und Uhrzeit Differenz in Tagen
-
29-09-2019 - |
Frage
Ich versuche, wie viele Tage zu finden sind zwischen zwei Terminen. Ich habe versucht, diese zu nutzen:
SET Days_Outstanding = DATEDIFF(day, CONVERT(datetime, LS_CHG_DTE_EQP, 1), CONVERT(datetime, Report_Date, 1))
Dies ist jedoch nicht die Rückkehr die Zahl in Tagen. Es ist ein Datetime in Jahren zurückkehrt, die nichts mit meinem Datensatz zu tun haben.
Ich bin mir nicht sicher, wo das Problem ist, noch ziemlich neu in SQL. Außerdem habe ich Days_Outstanding als int definiert, könnte das das Problem sein? Dank!
EDIT
Danke an alle! Nicht sicher, was passiert ist, änderte ich ein paar Dinge zu dem, was Sie vorgeschlagen und es Liquidation arbeiten, als ich ging zurück zu dem, was ich ursprünglich hatte. Nicht sicher, was passiert ist. Dank gedacht!
Lösung
DATEDIFF
kehrt integer
die Anzahl der Tage könnte jedoch schlicht falsch sein, abhängig von den Werten / Datentyp LS_CHG_DTE_EQP/Report_Date
und locale
Außerdem funktioniert DATEDIFF
am Tag Grenzen nicht mehr als 24 Stunden-Zeiträume. So 23:56
zu 00:02
beträgt einen Tag.
Andernfalls fügen Sie bitte Beispiel Ein- und Ausgabe.
Andere Tipps
Beispiel
select DATEDIFF(dd,'20100101',getdate())
kehren 227 heute
so in Ihrem Fall unter der Annahme LS_CHG_DTE_EQP und REPORT_DATE sind beide Datums-Werte
SET @Days_Outstanding = DATEDIFF(day, LS_CHG_DTE_EQP, Report_Date)
Haben Sie versucht, nur
SET Days_Outstanding = CONVERT(datetime, LS_CHG_DTE_EQP, 1) - CONVERT(datetime, Report_Date, 1))