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!

War es hilfreich?

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))
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top