我有一个名为:
的表Ext_Meeting_Status
这有字段
值为:
EXT_Meeting_Status_ID Text
1 Draft
2 Published
3 Cancelled
4 Closed
如果日期是今天,我如何返回“已发布”的“文本”字段,否则返回“关闭”。
我尝试使用:
select * from Ext_Meeting_Status
where
GETDATE() = CASE
WHEN ( GETDATE() = '2010-12-13 10:02:31.560' )
THEN ( Ext_Meeting_Status_ID=2)
ELSE ( Ext_Meeting_Status_ID=4)
END
答案 0 :(得分:2)
select * from Ext_Meeting_Status
where Ext_Meeting_Status_ID =
CASE WHEN (GETDATE() = '2010-12-13 10:02:31.560')
THEN (2)
ELSE (4)
END
我相信这应该有效..
还有一点需要注意:将当前日期与精确的毫秒级别进行比较可能不起作用,因为此时查询可能无法执行......
您可以尝试这样的事情。
Select getdate(), * from #Temp
Where ID = Case when getdate() between '2010-12-13 05:21:08.240' and '2010-12-13 05:22:08.240'
Then 1
Else 2
End
答案 1 :(得分:0)
我不认为这是可能的。您可能想尝试将其全部放入子选择中并在那里使用CASE。