sql >> Databáze >  >> RDS >> Sqlserver

Ukládání DateTime (UTC) vs. ukládání DateTimeOffset

Je zde jeden obrovský rozdíl, kdy nemůžete používat UTC samostatně.

  • Pokud máte scénář jako tento

    • Jeden server a několik klientů (vše geograficky v různých časových pásmech )
    • Klienti vytvářejí některá data s informacemi o datu a času
    • Klienti vše ukládají na centrální server
  • Potom:

    • datetimeoffset ukládá místní čas klienta a TAKÉ offset na čas UTC
    • všichni klienti znají čas UTC všech dat a také místní čas v místě, odkud informace pochází
  • Ale:

    • Datum UTC ukládá pouze datum UTC , takže nemáte informace o místním čase v místě klienta, odkud data pocházejí
    • Ostatní klienti neznají místní čas místa, odkud informace data a času pocházejí
    • Ostatní klienti mohou svůj místní čas vypočítat pouze z databáze (pomocí času UTC), nikoli místního času klienta, odkud data pocházejí.

Jednoduchým příkladem je rezervační systém letenek ... Letenka by měla obsahovat 2 časy:- čas "vzletu" (v časovém pásmu "Z" města)- čas "přistání" (v časovém pásmu "Cílového" města)



  1. Laravel 5 UnexpectedValueException v odpovědi na dotaz kvůli použití dat POINT

  2. Klauzule VALUES na serveru SQL Server

  3. Provádění hromadných aktualizací pomocí uložených procedur MyBatis a Oracle

  4. Jak vložit řádky s max(pole_objednávky) + 1 transakčně v PostgreSQL