2011-07-29 3 views
3

これは私に少し不快感を与えましたが、私はある期間、例えば、1月1日(真夜中から始まる)から3月31、2011(午前11時59分59秒PMまでのすべてのレコード)SQLの日付範囲を修正します

私が使ってlogtimeは、日時フィールドであることを条件

 
t.logtime between to_date('2011-01-01', 'yyyy-mm-dd') and to_date('2011-03-31') 

注意を使用しています。

これは私が欲しいものを反映していますか?それとも、私は実際には24時間足らずです。 私は時間も指定することができましたが、私はそれがなければこのことができると思っていました。

答えて

3

はい、ほとんどすべての最後の日がありません。さまざまな解決策があります。 probablt最も単純である:

t.logtime >= to_date('2011-01-01', 'yyyy-mm-dd') 
and t.logtime < to_date('2011-04-01', 'yyyy-mm-dd') 

私もANSI日付リテラル構文を使用したい:

t.logtime >= date '2011-01-01' 
and t.logtime < date '2011-04-01' 

を別の方法がある:

trunc(t.logtime) between date '2011-01-01' and date '2011-03-31' 

が、それはもはや使用することはできませんのでご注意logtimeの索引(ただし、trunc(logtime)の索引を使用できます)。

+0

おかげで、その不平等は頭に浮かぶことはなかった。 – MxyL