これは起こるはずですか?または私の質問に何か間違っています。私は11時55分00秒AM [仕上げ]でこれを実行すると、私は次のクエリ正午以降にCast(GetDate()as int)が正しく出力されない
select getdate() as [Date], CAST(getdate() as date) as [Time], CAST(getdate() as INT) as INT, Cast(CAST(cast(getdate() as int) as DATETime) as Date) as finish
を実行した場合、正しい日付を返します 。
12:10:00 PMにクエリを実行すると[終了]は明日の日付を返します。
私はこれを検索しようとしましたが、何かを見つけることができませんでした。
私は日付でグループ化しようとしていますが、私もグループ化したくないので、私は変換を行っています。
は、私はあなたの問題はあなたがint
代わりのfloat
を使用していて、上の丸めなっていること(あなたは絶対にこれらの変換を行う必要があれば、私はそれはずっと前に必要とされるように使用さ知っている)ということだと思うのMicrosoft SQL Server 2008 R2
は 'INT'にそれを変換しないでください - それは無意味です。 'CONVERT(DATE、GETDATE()) 'を使用する – Siyual
datetimeからintへの変換が退屈であることに同意します。これはデータベースがすでに設定されていた方法です。私は時間を考える方法は12:00:01 AMは1日の始まりで、11:59:59 PMは今日の終わりだと思う。 – Neal
@Luaan '12:10:00 AMは夜中です。 '12:10:00 PM'は正午の直後です。キャストのリテラルとして '12:10:00 'を使用すると、時刻の値に変換すると、正午より10分遅れて取得されます。 – iamdave