2016-11-15 3 views
2

です。ただし、次の2つのクエリは、最初の行が最後の行に> =を、2行目に=がある点を除き、同じです。しかし、最初の行は129行を返し、2番目の行は0を返します。今日は11-15-2016で、同じ結果を返すことを期待しました。 date_timeのデータ型はdateです。以下のクエリが異なる機能を果たす理由を説明できる人はいますか?文字通り2つの唯一の違いは、

演算子を> =から>に変更するだけで結果が変わる理由を説明できますか?おかげで、

select orderid 
    from order_log 
    where order_version = 0 
    and description = 'Order Complete' 
    and date_time **>=** to_date('11-15-2016', 'MM-DD-YYYY') 

select orderid 
    from order_log 
    where order_version = 0 
    and description = 'Order Complete' 
    and date_time **=** to_date('11-15-2016', 'MM-DD-YYYY') 
+0

あなたは時間、分、秒、などを含むフルタイムスタンプで見たことがありますか? 11-16-2016のタイムスタンプで来る注文があるようです。あなたは国際的なウェブサイトですか?ローカルタイムスタンプを持つ他のタイムゾーンからの注文が入っていますか?すべての日付がutcまたは単一のタイムゾーンに変換されていますか? – mba12

+1

ありがとうございましたmba12、日付がローカルかUTCかわかりませんが、コンバージョンが発生していますが、アメリカの2つのタイムゾーンのいずれかで通常営業時間内にすべての注文が入力されていますそれがそれかもしれないと思います。 –

答えて

5

DATE_TIMEには、タイムスタンプ(日付+時間)であり、あなたは真夜中(2016年11月15日午後12時00分00秒)で正確に発生したイベントはありません。


select   sysdate 
       ,case when sysdate = date '2016-11-16' then 'Y' else 'N' end as is_equal 

from   dual 

SYSDATE    IS_EQUAL 
2016-11-16 00:23:37 N 
+0

すごく、ありがとう、それは意味をなさない。 –

関連する問題