Accessのフィールドタイプが「100〜9999年の日付または時刻の値」(ref)として定義されているにもかかわらず、Access ODBCドライバは1753年1月1日より前の日付に問題があるようです。 RODBCと.NET System.Data.Odbcの両方でMicrosoft Access Driver (*.mdb, *.accdb)
を使用していることを確認できました。 Accessで
1753-01-01
(正しい)1753-01-01
としてアクセスODBCによって返されますが、Accessで
1752-12-31
は1752-12-30
としてアクセスODBCによって返された(間違った)
と、あなたが発見したとして、不一致がほど大きくなるさ私たちは時間を追ってさらに前進します。
日付を挿入しようとすると、Access ODBCでの問題に関連するマイクロソフトサポート技術情報の記事hereもあり前1753
にそれは1753年1月1日は、のために可能な限り早期であることはおそらく偶然ではありませんSQL ServerのDATETIME
列型です。私たちは、SQL ServerのDATETIME2
のようなものに値を変換することはできませんアクセスで唯一Date/Time
タイプがあり
What is the significance of 1/1/1753 in SQL Server?
その日の重要性についての詳細は、以下を参照してください。したがって、最もよい回避策はおそらくFormat()
を使用して、質問に記載されている日付値をテキストに変換することです。
これはグレゴリオ暦に関連している可能性がまたアクセスOLEDBプロバイダ(Microsoft.ACE.OLEDB.12.0が)前に1753
に日付と同じ問題を示さないことは注目に値しますか?差は大きすぎます。もっと最近の日付(つまり20世紀)で起こること –
あなたは正しいと思います!私はより最近の日付でチェックして、それは正しいです。 –
しかし、17世紀と18世紀には、エラーがありますが、バリエーションがあります:1686年から16日、 1732年の6日間です。それは非常に奇妙です。 –