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

Съхранение на конкретни стойности за дата/час за потребители в различни часови зони

Тъй като вие говорите за планиране на бъдеще време, съхраняване само UTC не е непременно най-добрият подход.

Имайте предвид, че правилата за часовата зона могат (и се променят). Ако приложите актуализация на данните си за часовата зона (в PHP това се прави с timezonedb на PECL пакет), тогава всички данни, които вече сте преобразували в UTC, може да са невалидни.

По-доброто решение е да съхранявате множество стойности:

  • Оригиналната местна дата и час

  • Оригиналната часова зона (напр. "America/New_York" )

  • Датата и часът по UTC, преобразувани от местните стойности

Когато искате да видите дали е време да изпълните задачата, трябва да сравните текущата дата и час по UTC със съхранената UTC стойност.

Когато прилагате актуализации на часовата зона, изхвърляте предишните преобразувани UTC стойности за всички бъдещи записи и преизчислявате нови въз основа на актуализираните данни.

Ако не направите това, губите намерението, което потребителят първоначално е предоставил. И ако не актуализирате данните си за часовата зона, системата ви няма да е наясно с различни промени, които се случват по света, като промените, направени в Египет по-рано тази година, или промените, идващи през октомври за Русия.

Последна точка - Ако е внедрена правилно, часовата зона на вашия сървър не трябва да има значение. Сравнете UTC с UTC.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разделете низ и преминете през стойности в MySql процедура

  2. Как да ограничим достъпа до MySQL порт

  3. разбирането на mysql обяснява

  4. MySQL Query - получаване на липсващи записи при използване на group-by

  5. Има ли недостатъци при използването на общ varchar(255) за всички текстови полета?