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

Къде да задам UTC стойност за дата и час в приложение с n нива:слой на представяне, домейн или база данни?

Гласувам за поставянето му в процедурата (или по подразбиране за колоната, за вложки). Няма причина да предавате цялата тази информация през всички слоеве, освен ако не се нуждаете от микросекунда точност, за да разграничите напр. когато потребителят е щракнал върху бутона срещу кога транзакцията е била ангажирана в базата данни. Това е особено вярно, ако имате разпределено приложение - искате ли да разчитате на синхронизирането на всички ваши сървъри за уеб/приложения, без значение работните станции на крайните потребители за клиентски/сървърни приложения? Може да имате сървъри в различни центрове за данни, всички с различни часови зони, някои спазващи DST, други не и т.н. DateTime.UtcNow трябва да заличи повечето от тези разлики, но все пак бих се върнал към предаването на всички тези данни без причина. Базата данни знае колко е часът; оставете го да съхранява стойността вместо вас и да държи цялата тази логика извън приложението.

(Също така, ако съхранявате UTC време, наистина ли имате нужда от DATETIMEOFFSET ? Ако е така, тогава все още се нуждаете от някакъв начин процедурата да знае от коя часова зона идва тази информация. Ако не, тогава вероятно трябва просто да използвате SMALLDATETIME/DATETIME/DATETIME2 в зависимост от изискваната точност.)




  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

  2. Как да създам външен ключ в SQL Server?

  3. Sql сървърът не актуализира записи

  4. Как мога да намеря номера на порта на sql сървъра от системния регистър на Windows?

  5. SQL Server SHOWPLAN_ALL