sql >> Database >  >> RDS >> Sqlserver

Verschil tussen datetime-conversies in MSExcel en SQL Server

Als we ons specifiek concentreren op DATETIME, waar de casts van int zijn toegestaan, zijn er twee redenen voor de discrepantie.

  1. Excel gebruikt een basis van 1 voor datums, SQL Server gebruikt 0, d.w.z. 01/01/1900 bij conversie naar een getal in Excel is dat 1, maar in SQL is het 0:SELECT CAST(CAST('19000101' AS DATETIME) AS INT); Zal 0 geven.

  2. Er is een opzettelijke fout in Excel om overdraagbaarheid van Lotus mogelijk te maken waar de bug niet opzettelijk was*. Excel beschouwt 29 februari 1900 als een geldige datum, maar 1900 was geen schrikkeljaar. SQL heeft dit probleem niet, dus dit betekent dat er een extra dag is in de Excel-kalender.

*(verdere lezing hiervan suggereert dat het misschien opzettelijk is geweest, of als onbelangrijk wordt beschouwd)

TOEVOEGEN

Er is een Microsoft-ondersteuningsitem dat houdt in:



  1. NIET IN vs NIET BESTAAT

  2. MySQL versus PostgreSQL voor webapplicaties

  3. SQL Server Parallel Back-up Herstellen -1

  4. Hoe verander ik een database naar postgresql met Symfony 2.0?