はい、SQL Server
時間を3.(3)
に丸めます ミリ秒:
SELECT CAST(CAST('2009-01-01 00:00:00.000' AS DATETIME) AS BINARY(8))
SELECT CAST(CAST('2009-01-01 00:00:01.000' AS DATETIME) AS BINARY(8))
0x00009B8400000000
0x00009B840000012C
ご覧のとおり、これらのDATETIME
は1
によって異なります 次に、それらのバイナリ表現は0x12C
によって異なります。 、つまり300
10進数で。
これは、SQL Server
が原因です。 time
を保存します DATETIME
の一部 1/300
の数として 真夜中から2番目のダニ。
より正確にしたい場合は、TIME
を保存する必要があります 別の値としての部分。同様に、時間を1秒に丸めてDATETIME
として保存します。 、およびミリ秒またはINTEGER
として必要な精度 別の列にあります。
これにより、複雑なDATETIME
を使用できるようになります DATETIME
で月を追加したり、曜日を検索したりするなどの算術演算 の場合、ミリ秒を加算または減算して、結果を.XXXXXX+HH:MM
として連結できます。 有効なXML
を取得するには 表現。