3

DateTime変数から時間を取り除こうとしています。

DECLARE @Date DateTime 

SET @Date = '01Jan2013 23:59:59.998'
PRINT DATEADD(dd, 0, DATEDIFF(dd, 0, @Date ))

SET @Date = '01Jan2013 23:59:59.999'
PRINT DATEADD(dd, 0, DATEDIFF(dd, 0, @Date ))

結果:

2013年1月1日12:00AM2013年1月
2日12:00AM

1月1日ではなく1月2日01Jan2013 23:59:59.999として戻ってくるのはなぜですか?

4

1 に答える 1

4

日時タイプには.999と.998の端数がないためです。.990、.993、.997しかありません。

したがって、.998は.997に切り捨てられ、.999は切り上げられます。タイプについてもっと読む。

于 2013-03-27T11:58:04.817 に答える