sql >> Databasteknik >  >> RDS >> Sqlserver

Skillnad mellan datetime-konverteringar i MSExcel och SQL Server

Koncentrerar man sig specifikt på DATETIME, där casts från int är tillåtna, det finns två anledningar till avvikelsen.

  1. Excel använder basen 1 för datum, SQL Server använder 0, dvs 01/01/1900 när det konverteras till ett tal i excel är 1, men i SQL är det 0:SELECT CAST(CAST('19000101' AS DATETIME) AS INT); Ger 0.

  2. Det finns ett avsiktligt fel i Excel för att tillåta portabilitet från Lotus där felet inte var avsiktligt*. Excel betraktar den 29 februari 1900 som ett giltigt datum, men 1900 var inte ett skottår. SQL har inte detta problem, så det betyder att det finns en extra dag i excel-kalendern.

*(vidare läsning om detta tyder på att det kan ha varit avsiktligt eller ansett vara oviktigt)

TILLÄGG

Det finns ett Microsoft Support Item som säger:



  1. PLSQL-FALL NÄR SKICK

  2. Hur kontrollerar man vilken funktion som använder en typ?

  3. Laravel 5.3:Syntaxfel eller åtkomstöverträdelse:1463 Icke-grupperande fält 'distans' används i HAVING-satsen

  4. MySQL - Organisera databasinnehåll (Sports League)