通常、から時間情報を削除する必要がありGETDATE()ます。信頼できる比較を行うために、日付情報のみを格納していることがわかっているいくつかの DateTime フィールドがあるため、これが必要です ( MyDate < GETDATE()) から時間情報を削除する必要がありますGETDATE())。もちろん、DATEデータ型を で使用することもできますMyDateが、これは新しいアプリケーションでは問題なく、レガシー アプリケーションでは問題ありません。
以前は でやっていましCASTたが、SQL Server 2008 にはDATEデータ型もあるので、読みやすいようです。
古いアプローチ
DECLARE @Today DateTime
SET @Today = (CAST(FLOOR(CAST( GETDATE() AS FLOAT)) AS DATETIME))
select @Today
新しいアプローチ
DECLARE @TodayDate Date
Set @TodayDate = GETDATE()
select @TodayDate
2 番目のものを使用してもよいですか、それとも注意事項はありますか? (コルセの私は2008年のみを使用しています!)