2017-08-29 3 views
0

j'ai une formule qui remplace un an dans un champ datetime, puis jette également le champ datetime comme date:Soustraire 6 mois à compter de la date qui a la formule

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

qui renvoie un résultat comme celui-ci: 2017 -08-07 du: 2008-08-07. Maintenant, j'ai besoin de soustraire 6 mois de cela, donc le nouveau résultat serait 2017-02-07. J'ai fait le changement suivant, ce qui a entraîné une erreur

syntaxe incorrecte près du mot-clé « comme »

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

que vous avez oublié d'ajouter 2 parenthèses plus proches de votre nouvelle CAST et DATEADD avant que [6 mo Anniv] –

+0

Pourquoi cette question avait été voté vers le bas? La question montre que le PO a tenté de résoudre sa propre question? – Gareth

+0

Merci. J'ai essayé cela à l'origine. Rien ne souligne mettre en évidence une erreur, mais donne toujours la même erreur. – thummel1

Répondre

2

Vous avez oublié de mettre entre parenthèses pour fermer votre nouvelle fonctions CAST et DATEADD pour soustraire 6 mois pour le résultat original. En outre, votre nouvelle fonction CAST doit inclure la date AS.

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

Je vois ce que j'ai raté. Cela a résolu mon problème. Merci beaucoup!! – thummel1

+0

De rien. Vous pouvez vérifier ceci comme la réponse à cette enquête pour fermer ceci. –