Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Съхраняване на DateTime (UTC) срещу съхраняване на DateTimeOffset

Има една огромна разлика, при която не можете да използвате само UTC.

  • Ако имате сценарий като този

    • Един сървър и няколко клиента (всички географски в различни часови зони )
    • Клиентите създават някои данни с информация за дата и час
    • Клиентите съхраняват всичко на централен сървър
  • След това:

    • datetimeoffset съхранява местното време на клиента и СЪЩО изместване до UTC време
    • всички клиенти знаят UTC времето за всички данни, както и местно време на мястото, откъдето произхожда информацията
  • Но:

    • UTC datetime съхранява само UTC datetime , така че нямате информация за местното време в местоположението на клиента, откъдето произхождат данните
    • Други клиенти не знаят местното време на мястото, откъдето идва информацията за датата и часа
    • Другите клиенти могат да изчислят своето местно време само от базата данни (използвайки UTC време), а не местното време на клиента, откъдето произхождат данните

Прост пример е система за резервация на самолетни билети... Самолетният билет трябва да съдържа 2 пъти:- час на „излитане“ (в часовата зона на града „От“)- час на „кацане“ (в часовата зона на града „Дестинация“)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да възстановите база данни на SQL Server чрез C# код

  2. Групиране на общия брой активни потребители за всяка от предходните 8 седмици

  3. Как да мигрирате задания на SQL сървър от един екземпляр на SQL сървър към друг

  4. T-SQL дата и час, закръглен до най-близката минута и най-близките часове с използване на функции

  5. SQL Server - Заявка за късо съединение?