2012-07-05 253 views
0

如果我想查找处于日期范围内的活动记录,是否需要将表格连接到本身或只需要一个单元where子句就足够了? 表的架构是一样的东西:在日期范围内查找记录

active_ind bool 
beg_dt_tm datetime 
end_dt_dm datetime 

和查询传递日期时间参数去找出该范围内的记录,所以我想知道一个psedu-SQL这样就够了还是我需要加入到表中,为什么?

select * 
from MyTable mt 
where mt.active_ind = true 
and param between mt.beg_dt_tm and mt.end_dt_tm 
+7

这应该够了。 – elvenbyte 2012-07-05 14:09:53

+0

@juergend:哦,这是一个错字。感谢您的支持。固定。 – Bohn 2012-07-05 14:12:59

+1

还要确保你有两个日期字段的索引,否则你冒着大量的行慢的风险。 – 2012-07-05 14:34:48

回答

0

在这种情况下,您不能使用BETWEEN。 是这样的:

select * 
from MyTable mt 
where 
    mt.beg_dt_tm >= param and 
    mt.end_dt_tm <= param 
相关问题