Wie kann ich das beheben “Implizite Konvertierung von Datentyp datetime int ist nicht zulässig. Verwenden Sie die CONVERT-Funktion zum ausführen dieser Abfrage." Fehler?
Ich habe 2 Datumsfelder von dateTime-Datentyp jeder.
Heißt PhaseEnd und der andere ist PhaseStart.
Möchten wir subtrahieren PhaseStart von PhaseEnd, um die Anzahl der Monate zwischen den beiden.
Wenn ich die folgende Abfrage ausführen:
SELECT (CASE WHEN PhaseEnd IS NOT NULL THEN round((PhaseEnd - PhaseStart)/30,1)
ELSE round((getdate() - PhaseStart)/30,1) END) Months from tblT_PHASES
Bekomme ich Implicit conversion from data type datetime to int is not allowed. Use the CONVERT function to run this query.
Irgendeine Idee, wie man dieses Problem beheben?
- Verwenden
DATEADD
oderDATEDIFF
statt-
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
verwenden datediff
oder
month
dann die /30 Berechnung gilt dann nicht mehr - hast du meineday
?DATEDIFF
statt implizite Subtraktion (das funktioniert nur in bestimmten Kontexten und nur mit einigen Datum - /Zeit-Typen sowieso). Wenn Sie einen business-Logik Frage, ob Sie zurückkehren sollte, Tage oder Monate oder wie sollte man berechnen, das Intervall, das ist etwas, das Sie gehen zu müssen, um zu entscheiden, - wir können nicht für Sie tun.