SELECT DATEDIFF(DAY, CURRENT_TIMESTAMP, DATE_EXPIRE),EMAIL
FROM dbo.[myTable]
WHERE DATEDIFF(DAY, CURRENT_TIMESTAMP, DATE_EXPIRE) BETWEEN 1 AND 10;
BETWEEN の使用を実際に推奨する数少ないケースの 1 つです。私はまだ明示的な境界を設定することを好みますが:
DECLARE @tomorrow DATE = DATEADD(DAY, 1, CURRENT_TIMESTAMP);
SELECT DATEDIFF(DAY, CURRENT_TIMESTAMP, DATE_EXPIRE),EMAIL
FROM dbo.[myTable]
WHERE DATE_EXPIRE >= @tomorrow
AND DATE_EXPIRE < DATEADD(DAY, 10, @tomorrow);
簡略計算 ( などdatetime - integer
) は使用しないでください。これは、DATETIME / SMALLDATETIME で機能しますが、データ型を DATE、DATETIME2 などに変更すると機能しなくなるためです。
日付範囲クエリに関する私のとりとめの多くについては、次のとおりです。