質問

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

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

何が間違っているのですか?

役に立ちましたか?

解決

小さい日付が最初でなければなりません

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

の代わりに

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

また、より大きな日付から真夜中の値を取得し、それ以外の何も取得しないため、間で使用する場合は注意してください

SQL Serverで日付を操作する方法

他のヒント

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

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

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

2009-06-16の午前0時以降に発生するMS-SQL Serverイベントには含まれません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top