SQL查询将表传递给存储过程

时间:2010-05-12 08:41:37

标签: sql sql-server-2008 parameters

我有DateTime值列表,并且我需要从数据库中获取某些值。我想用一个查询来做这个。我知道可以将表(列表)传递给存储过程,但我不确定如何编写查询本身。

假设我有下表:

CREATE TABLE Shows(
    ShowId [int] NOT NULL, 
    StartTime DateTime NOT NULL, 
    EndTime DateTime NOT NULL 
)

和一系列日期

DECLARE @myDateArray MyCustomDateArrayType

现在,如果我提取一个项目,我会写一个这样的查询:

SELECT * FROM Shows
WHERE StartTime > @ArrayItem and @ArrayItem < EndTime

其中@ArrayItem是来自@myDateArray的项目。

但是,如何制定查询以获取所有数组项的信息?

1 个答案:

答案 0 :(得分:2)

这应该这样做:

SELECT s.* 
FROM Shows s
    JOIN @MyDateArray t ON s.StartTime > t.TableVarDateField 
        AND t.TableVarDateField < s.EndTime