2017-08-29 41 views
0

我有一个公式,在时间字段取代了一年,然后也蒙上了日期时间字段的日期:减去日起六个月有公式

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

返回这样的结果:2017年-0-08-07从:2008-08-07。现在,我需要从中减去6个月,所以新的结果将是2017-02-07。我做了以下的变化,这导致了错误的关键字附近

不正确的语法“为”

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

你可能已经忘记了为[6月Anniv]前增加2个右括号为您的新CAST和DATEADD –

+0

为什么这个问题一直向下投?这个问题表明,OP已经试图解决他们自己的问题? – Gareth

+0

谢谢。我最初尝试过。没有强调突出显示一个错误,但仍然给出了相同的错误。 – thummel1

回答

2

你忘了把括号关闭新CAST和DATEADD函数减去6个月的原始结果。另外,您的新CAST函数应该包含AS DATE。

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

我明白我错过了什么。这解决了我的问题。非常感谢!! – thummel1

+0

不客气。您可以选择此项作为此调查的答案来完成此操作。 –