2012-07-05 186 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 
相關問題