In
OLE beginnt die Epoche am 0. Januar des Schaltjahres 1900. Ja, es ist ausdrücklich nicht der 31. Dezember 1899 (formatiert mal in Excel 0 oder 60 als Datum). Und ja, 1900 war kein Schaltjahr.
Aus den Gründen hat Delphi den minus-1. Januar des Normaljahres 1900 (auch 30. Dezember 1899 genannt) als Start der Epoche. Bei Tagen ab dem 1.3.1900 kann man bei der Arbeit mit
OLE den Unterschied ignorieren.
OLE kennt keine Datumsangaben vor Beginn der Epoche.
Die Epoche beginnt bei
SQL Server am 1. Januar des Normaljahres 1900. Warum Microsoft da ein anderes Datum als bei ihren anderen Produkten gewählt hat, erschließt sich mir nicht.
Da muss man höllisch bei überladenen Methoden aufpassen, die was an die Datenbank übergeben, da man in Delphi Double und TDateTime nicht unterscheiden kann, sonst hat man die zwei Tage Differenz.