【发布时间】:2015-07-27 09:33:43
【问题描述】:
我正在尝试使用此脚本按月控制日期
DECLARE @Date DATETIME = '2015-07-31';
DECLARE @MonthCount INT = 3;
DECLARE @controlDate DATETIME = '2015-04-28';
SELECT
MONTH(@controlDate),
MONTH(DATEADD(MONTH, -@MonthCount, @Date)),
IIF(MONTH(@controlDate) > MONTH(DATEADD(MONTH, -@MonthCount, @Date)),'OK','No') as isOK
但是我收到了这个语法错误:
消息 102,级别 15,状态 1,第 8 行 '>' 附近的语法不正确
编辑:
当我尝试if 时,它正在工作:
DECLARE @Date DATETIME = '2015-07-31';
DECLARE @MonthCount INT = 3;
DECLARE @controlDate DATETIME = '2015-04-28';
if(MONTH(@controlDate) > MONTH(DATEADD(MONTH, -@MonthCount, @Date)))
print 'OK'
else
print 'No'
我做错了什么还是这是一个错误?
【问题讨论】:
-
我相信你在这里需要
case语法:stackoverflow.com/a/63480/60188 -
@AntonGogolev 但我不想要用例。 IIF 更简单。
-
@eMKey - 它在这里工作sqlfiddle.com/#!6/ffa43/4
-
@Fireblade 看那个 => link
-
@eMKey - 是的,我明白了。您的数据库的兼容性级别是多少
标签: sql sql-server-2014 iif