2017-08-29 2 views
0

Ich habe eine Formel, die ein Jahr in einem Datetime-Feld ersetzt, und dann wirft auch das Datetime-Feld als Datum:subtrahieren 6 Monate ab Datum, das Formel

cast(DATEADD(year,DATEDIFF(year,LAW_TAEEMASTER.MASTR_ENTRY,GETDATE()),LAW_TAEEMASTER.MASTR_ENTRY) as date) as [New Date] 

, die ein Ergebnis wie folgt zurück: 2017 -08-07 von: 2008-08-07. Jetzt muss ich 6 Monate davon abziehen, also wäre das neue Ergebnis 2017-02-07. Ich habe die folgende Änderung, die

falsche Syntax nahe dem Schlüsselwort in einem Fehler ‚als‘

cast(DATEADD(Month,-6,cast(DATEADD(year,DATEDIFF(year,LAW_TAEEMASTER.MASTR_ENTRY,GETDATE()),LAW_TAEEMASTER.MASTR_ENTRY) as date) as [6 mo Anniv] 
+0

Sie 2 mehr schließen Klammern für die neue CAST und DATEADD vergessen haben, bevor sie als [6 mo Anniv] hinzuzufügen –

+0

Warum diese Frage wurde nach unten gestimmt? Die Frage zeigt, dass das OP versucht hat, seine eigene Frage zu lösen? – Gareth

+0

Danke. Ich habe das ursprünglich versucht. Nichts hebt hervor, einen Fehler hervorzuheben, gibt aber immer noch denselben Fehler. – thummel1

Antwort

2

Sie haben Klammern vergessen setzen Sie Ihre neue CAST und DATEADD Funktionen schließen zum Subtrahieren 6 Monate zum ursprünglichen Ergebnis. Außerdem sollte Ihre neue CAST-Funktion das AS DATE enthalten.

CAST(DATEADD(Month,-6,cast(DATEADD(year,DATEDIFF(year,'01/01/2017',GETDATE()),'01/01/2017') AS DATE)) AS DATE) as [6 mo Anniv]

+0

Ich sehe was ich vermisst habe. Das hat mein Problem behoben. Danke vielmals!! – thummel1

+0

Gern geschehen. Sie können dies als Antwort auf diese Anfrage überprüfen, um dies zu schließen. –

Verwandte Themen