私はSQLクエリを持っています...DATEADD今から30日を除いて
このクエリを今日の日付から実行すると、2011年7月22日に返されたレコードが返されます。
SELECT test_id, lat, long
FROM testDB.src.test_20
WHERE test_date >= DATEADD(day,-32, GETDATE()) and lat is not null and long is not null
DATEADD関数を-31に変更すると、2011年7月23日からレコードが取得されます。
SELECT test_id, lat, long
FROM testDB.src.test_20
WHERE test_date >= DATEADD(day,-31, GETDATE()) and lat is not null and long is not null
DATEADD機能の仕組みをはっきりと理解できていない可能性があります。 -31を使用したときに起こると思われることは、今日から31日前までのレコードで、2016年7月22日のレコードを返します(今日から31日前は、2011年7月22日です)。
-31を使用すると、なぜ2011年7月22日以降のレコードが返されないのですか?
SQL Server Management Studioの2012
'DATEADD(day、-32、GETDATE())'はタイムスタンプも返します。これを実行すると、 'test_date'のタイムスタンプは現在の時刻より大きくなります。 – techspider