The following query works:
select dateadd(m, -5, getdate() - datepart(d, getdate()) + 1)
But when I tried to replace the getdate()
with a specific date, example below:
select dateadd(m, -5, (convert(DATE,'2017-01-04') - (datepart(d, getdate()) + 1)))
I get the error saying Operand type clash: date is incompatible with int
What did I do wrong?
It is because GETDATE()
returns DATETIME
datatype ,You Can do -1
or +1
with Datetime
values but not with Date
values.
If you just changed your query a little bit , convert to datetime
instead of Date
it will work fine.
select dateadd( m
, -5
, (convert(DATETIME,'2017-01-04') - (datepart(d, getdate()) + 1)))
^-- Datetime instead of Date
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments