SQL Server查询 - 使用IN运算符和Getdate()的位置

时间:2014-03-27 05:34:01

标签: sql sql-server sql-server-2008

我在IN内的getdate下面有一个SQL查询,如示例

所示

由于IN需要在引号中表达,因此无效。

它可以用于动态查询,但除了动态查询之外还有其他方法吗?

e.g。

PIVOT
(
SUM(Items)
FOR [ReceivedDate]
IN (select  
    CONVERT(char(10), GetDate(),126)
,CONVERT(char(10), GetDate()-1,126) 
      ,CONVERT(char(10), GetDate()-1,126) 
)

这不起作用。

3 个答案:

答案 0 :(得分:0)

这是" IN"的样本。声明

SELECT * FROM Customers 城市IN(' Paris',' London');

尝试这样的事情

itemDate IN( SELECT getdate() - 1,getdate-2,..)

答案 1 :(得分:0)

IN不需要在引号中指定项目。你准备做什么?

如果您正在尝试比较日期而未获得结果,那么可能是因为您需要剥离时间组件。

SELECT 
    GetDate()                                         AS RightNow,
    Cast(Floor(Cast(GetDate() AS float)) AS datetime) AS DateOnly

答案 2 :(得分:0)

Sql server的IN基本上只是将标准扩展为OR。

你有什么工作,我把一个平方米放在一起展示它。 http://sqlfiddle.com/#!3/ffcbd/3/0

UPDATE - 由于OP最初没有包括这是参考PIVOT,我上面的回答假设它是IN逻辑运算符。如果动态sql不是一个选项,那么问题的答案似乎是“NO”。