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

Przechowywanie DateTime (UTC) a przechowywaniem DateTimeOffset

Jest jedna ogromna różnica, w której nie można używać samego UTC.

  • Jeśli masz taki scenariusz

    • Jeden serwer i kilku klientów (wszystkie geograficznie w różnych strefach czasowych )
    • Klienci tworzą pewne dane z informacjami o dacie i godzinie
    • Klienci przechowują to wszystko na centralnym serwerze
  • Następnie:

    • datetimeoffset przechowuje czas lokalny klienta i TAKŻE offset do czasu UTC
    • wszyscy klienci znają czas UTC wszystkich danych, a także czas lokalny w miejscu, z którego pochodzą informacje
  • Ale:

    • Data i godzina UTC przechowuje tylko datę i godzinę UTC , więc nie masz informacji o czasie lokalnym w lokalizacji klienta, z której pochodzą dane
    • Inni klienci nie znają lokalnego czasu miejsca, z którego pochodzą informacje o dacie i godzinie
    • Inni klienci mogą obliczać tylko swój czas lokalny z bazy danych (używając czasu UTC), a nie czasu lokalnego klienta, z którego pochodzą dane

Prostym przykładem jest system rezerwacji biletów lotniczych ... Bilet powinien zawierać 2 razy:- czas "startu" (w strefie czasowej miasta "Z") - czas "lądowania" (w strefie czasowej miasta "docelowego")



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uzyskiwanie i instalacja Microsoft SQL Server Management Studio

  2. SQL Server 2008 R2 — skalarny UDF skutkuje nieskończoną pętlą

  3. Utwórz wyzwalacz w SQL Server

  4. Czy możesz utworzyć CLR UDT, aby zezwolić na wspólny typ tabeli w bazach danych?

  5. Jak zarządzać ogromną ilością danych za pomocą strumienia plików, skoro do przechowywania danych obsługiwane są tylko ścieżki lokalne?