1

我希望你能提供帮助。我正在尝试编写一个需要 2 个 where 条件的 SQL 查询。这是我想出的,但出现错误:

SELECT *
FROM Table
WHERE (Datediff(dd,TimeStampUTC,dateadd(dd,-1,getdate())))
AND (MeterTagId Between 416 AND 462)

本质上,我有一个表格,其中每 15 分钟收集一次针对一系列标签的数据。我想要做的是返回一系列标签的“前几天”数据。

您可以提供的任何帮助将不胜感激,因为我的 SQL 知识仍然非常有限。

提前致谢。

4

2 回答 2

3

您在这里没有条件:

WHERE (Datediff(dd,TimeStampUTC,dateadd(dd,-1,getdate())))

您需要添加一个 = 或 <= 或 >= 或 < 或 > 或介于两者之间或提供 true 或 false 的内容

这似乎没问题:

AND (MeterTagId Between 416 AND 462)

也请发布您的错误。

于 2013-08-22T13:08:49.063 回答
1

如果您想在 上使用索引TimeStampUTC,那么您应该尝试在该列上没有函数的情况下执行此操作:

SELECT *
FROM Table
WHERE TimeStampUTC between cast(getdate() - 1 as date) and cast(getdate() as date) and
      MeterTagId Between 416 AND 462;
于 2013-08-22T13:14:13.637 回答