2016-11-08 6 views
0

31.10.2015のセルでH9を入力した場合、他のセルに式を入力した場合= H9+Aセル42308Aが届きます。SQL Serverと数字の変換に差異を与える

私はCONVERT(varchar, CONVERT(int, CONVERT(datetime, [Due Date])))を使用し、42306を取得します。

なぜ2の差が生じるのですか?

答えて

1

これを読んで、私は2つの理由があると思います。

Excelでのシリアル番号の最初の日付は1900-01-01です。これはシリアル番号が1です。https://support.office.com/en-gb/article/DATEVALUE-function-df8b07d4-7761-4a93-bc33-b7471bbff252 SQLでは、この日付の数値は0ではなく1です。そのため、1の違いがあります。

2番目の単位は少し奇妙です。 Excelでは、日付が存在しないにもかかわらず1900-02-29日付がシリアル番号を持っています(2月29日は世紀の回を除いて4年ごとに存在します)。 SQL 1900-02-29では存在しません(これを試してみてくださいSELECT CONVERT(int, CONVERT(datetime, '19000229')))。このように、2番目の単位の違いを説明します。

0

実際にSQLとExcelの間の日付の差が0に等しいSQL 01/01/1900で、逆に、1に等しいエクセル01/01/1900で、このために1に等しいarticle

関連する問題