1

「OrderH」という注文ヘッダー テーブルがあります。このテーブルには、「OrderDate」という列があります。特定の範囲内の日付で注文を取得しようとしています。「 between 」キーワードでこれを達成できると思っていましたが、運がありません。これは私がいじっていたこのSQLです:

select 
    * 
from
    OrderH h
where
        h.OrderDate between '2009-06-16' and '2009-06-01'
order by
    h.OrderDate desc

私は何を間違っていますか?

4

5 に答える 5

9

小さい方の日付を最初にする必要があります

between  '2009-06-01' and '2009-06-16'

それ以外の

between '2009-06-16' and '2009-06-01'

また、 between を使用する場合は注意してください

見てみましょうSQL Server での日付との間の作業方法?

于 2009-06-17T13:17:41.947 に答える
1

あなたの例では最初の日付が2番目の日付よりも大きいため、クエリは機能しません。日付を入れ替えます。最初の日付は 2 番目の日付以下でなければなりません。

于 2009-06-17T13:18:41.350 に答える
1

開始する前に終了する日付を見つけるのは困難です。最小値と最大値を変更...

h.OrderDate between '2009-06-01' and '2009-06-16'
于 2009-06-17T13:19:06.653 に答える
0
select 
    * 
from
    OrderH h
where
        h.OrderDate between '2009-06-01' and '2009-06-16'
order by
    h.OrderDate desc
于 2009-06-17T13:18:19.450 に答える
0

MS-SQL Server では、2009 年 6 月 16 日の午前 0 時以降に発生したイベントは含まれません。

于 2009-06-17T13:21:16.947 に答える