Cast auf SmallDateTime int
Ich versuche zu vergleichen L.LoanDueDate
(das ist ein smalldatetime
) auf den Rückgabewert von ufnARCUGetLatestProcessDate()
(das ist ein int
), um zu sehen, wie viele Tage das Darlehen Fälligkeitsdatum wird auf den letzten Vorgang Datum.
Erhalte ich eine
Arithmetischer überlauffehler beim konvertieren des Ausdrucks in den Datentyp smalldatetime
Fehler und kann nicht scheinen, um es herauszufinden. Jede Hilfe wäre nützlich. Vielen Dank im Voraus.
CAST(L.LoanDueDate - CAST(CAST((SELECT ProcessDate FROM ufnARCUGetLatestProcessDate()) AS VARCHAR(10)) AS smalldatetime) AS INT)
- Ich habe auch versucht, verwenden Sie die folgende. CAST(L. LoanDueDate-CONVERT(smalldatetime,convert(char(8),(SELECT ProcessDate VON ufnARCUGetLatestProcessDate()))) AS INT)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann man nicht vergleichen mit einem int-Datentyp in einen smalldatetime. Sie vergleichen müssen zwei Termine und für die, die Sie haben würden, zu verwenden datediff.
War ich in der Lage, herauszufinden, das Problem. DigCamare Kommentar DATEDIFF erinnerte mich daran, dass ist, was ich tun musste, obwohl Sie warf einen int in einen smalldatetime-so können Sie es vergleichen.
Können Sie werfen die Datum-Spalte in int. Es wird Ihnen der Ungefähre (gerundet) Datum, ohne die Zeit als int.
Edit:
Diese geben Sie das Datum als Zahl zum Vergleich:
Der Schlüssel ist gegossen, das Datum zu Zahl und nicht die Zahl auf Datum.
Wollte nur Folgendes hinzufügen. Dies ist, was ich bin mit einem einfachen int zu smalldatetime-Konvertierung. Hoffe, es hilft anderen Menschen.