2016-06-15 1 views
0

私のクエリで相対日付を使用しようとしています。私は2つのこれを行う方法(必ずもっとあります)が、私にとってはどちらも仕事を見てきましたし、私はこれがそのにもかかわらず(GETDATE()ためである2016年6月14日選択クエリの相対日付を使用

select * from tblMy where DatePrice = GETDATE() - 1 

select * from tblMy where DatePrice = DATEADD(DAY, -1, GETDATE()) 
+0

コラム "DatePrice" のデータ型は何ですか? –

答えて

1

のための私のテーブル内のデータを見ることができます検索から名前)には時間要素があります。したがって、DatePriceに時間コンポーネントがない場合は、真夜中にのみ一致します。 DatePriceに時間成分がある場合、それらはほとんど一致しません。

を使用でき

where DatePrice = CAST(DATEADD(DAY, -1, GETDATE()) as DATE) 

あるいは、時間コンポーネントの有無にかかわらず、安全なバージョンで:

where DatePrice >= CAST(DATEADD(DAY, -1, GETDATE()) as DATE) AND 
     DatePrice < CAST(GETDATE() as DATE) 
+0

ああ意味があります!私が見ていたテーブルには、時間コンポーネントがない日付があります – mHelpMe

関連する問題