Explizite Konvertierung von date-Datentyp int ist nicht erlaubt
Ich versuche zu berechnen, ALTER der Verträge, jedoch bin ich immer die Fehler
Explizite Konvertierung von date-Datentyp int ist nicht zulässig
Dies ist mein code:
SELECT
Contract_hist.*,
IB.*,
CAST((CASE
WHEN (CAST(CONVERT(INT, Setup.[Start]) - CONVERT(INT,[IB].[Install_Date])) AS INT))/365 <= 0
THEN 0
WHEN (CAST(CONVERT(INT, Setup.[Start]) - CONVERT(INT,[IB].[Install_Date])) AS INT)) / 365 > 0
THEN (CAST(CONVERT(INT, Setup.[Start]) CONVERT(INT,[IB].[Install_Date])) AS INT)) / 365
END) AS INT) AS AGE
FROM
Setup, Contract_hist
INNER JOIN
IB ON Contract_hist.[System No] = IB.System_ID
Wo "Setup.[Start]" & "[IB].[Install_Date]" sind datetime2 Werte.
Bezieht sich das? stackoverflow.com/questions/5505935/... "umwandeln in ein int funktioniert nicht mehr in neueren Versionen von sql server". versuchen Sie es mit
Schlechte Gewohnheiten zu treten : mit old-style-JOINs, das im alten Stil Komma-getrennte Liste von Tabellen - Stil ersetzt wurde mit dem richtige ANSI
Also, was schlagen Sie vor? Welche Art von
DATEDIFF(dd, '12/30/1899', mydatefield)
.Schlechte Gewohnheiten zu treten : mit old-style-JOINs, das im alten Stil Komma-getrennte Liste von Tabellen - Stil ersetzt wurde mit dem richtige ANSI
JOIN
syntax in ANSI-92 SQL-Standard (25 Jahre her), und seine Verwendung wird abgeraten. Und sollten Sie definitiv NICHT mix der beiden Stile !Also, was schlagen Sie vor? Welche Art von
join
sollte ich verwenden?InformationsquelleAutor BTurkeli | 2017-04-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vielleicht?
InformationsquelleAutor TriV
Scheint, wie bei der Umwandlung eines float/int wird nicht unterstützt, in den letzteren Versionen von sql server. Versuchen Sie es mit
DATEDIFF(dd, '12/30/1899', mydatefield)
InformationsquelleAutor redFur
Könnten Sie wandeln diese datetime2 Felder erste, der einen datetime-Wert, dann int.
Aber das kann verkürzt werden zu:
Oder man könnte es vereinfachen noch mehr, und berechnen Sie die Differenz in Jahren direkt mit datediff:
Und in diesem FALL kann ebenfalls vereinfacht werden:
InformationsquelleAutor LukStorms