我有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的项目。
但是,如何制定查询以获取所有数组项的信息?
答案 0 :(得分:2)
这应该这样做:
SELECT s.*
FROM Shows s
JOIN @MyDateArray t ON s.StartTime > t.TableVarDateField
AND t.TableVarDateField < s.EndTime