我需要編寫一個儘可能高效的查詢,返回等於當天日期減去100天或200天的具有mycol(時間戳值)的行。 (恰好是100或200天前 - 而不是一個區間)DB2 - 優化查詢 - 將函數應用於當前日期或db列?
注意mycol總是有00.00.000000時間。 (忽略這是爲什麼)
下面是如何可以寫一個例子:
select * from mytable mt where
date(mycol) in (current date - 100 days, current date - 200 days)
我想這可能是更有效的:
select * from mytable mt where
mycol in (timestampadd(16,-100,timestamp(current date,'00:00:00')),
timestampadd(16,-200,timestamp(current date,'00:00:00')))
的原因,我相信它效率更高是因爲我沒有在mycol
上調用函數(就像我在第一個示例中那樣),並且current date
上的計算僅在每次執行此查詢時發生一次,而不是每行發生。
我的假設是否正確?
您是否在尋找具有兩個值的比較或日期間的範圍? –
只有兩個值 - 不是範圍 – NEW2WEB