Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Różnica między konwersjami daty i godziny w MSExcel i SQL Server

Koncentrując się konkretnie na DATETIME, gdzie rzuty z int są dozwolone, istnieją dwa powody rozbieżności.

  1. Excel używa podstawy 1 dla dat, SQL Server używa 0, tj. 01/01/1900 po konwersji na liczbę w Excelu wynosi 1, jednak w SQL jest to 0:SELECT CAST(CAST('19000101' AS DATETIME) AS INT); Da 0.

  2. W programie Excel występuje celowy błąd, który umożliwia przenoszenie z Lotus, gdy błąd nie był celowy*. Excel uważa 29 lutego 1900 za prawidłową datę, ale 1900 nie był rokiem przestępnym. SQL nie ma tego problemu, więc oznacza to, że w kalendarzu programu Excel jest dodatkowy dzień.

*(dalsza lektura sugeruje, że mogło to być celowe lub uznane za nieistotne)

UZUPEŁNIENIE

Istnieje Element pomocy Microsoft to satysfakcjonujące:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uruchomienie skryptu wykonanego przez wygenerowanie skryptu na innym serwerze daje błąd

  2. Nie można użyć UPDATE z klauzulą ​​OUTPUT, gdy na stole znajduje się wyzwalacz

  3. Uporządkuj Używając parametru dla nazwy kolumny

  4. Konwertuj obiekt blob VarBinary RTF na tekst w MS SQL

  5. Czy istnieją zagrożenia bezpieczeństwa związane z monitorowaniem w chmurze Spotlight?