Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Przechowywanie określonych wartości daty/godziny dla użytkowników w różnych strefach czasowych

Skoro mówisz o planowaniu przyszłości czas, przechowywanie tylko UTC niekoniecznie jest najlepszym podejściem.

Pamiętaj, że zasady dotyczące stref czasowych mogą (i się zmieniają). Jeśli zastosujesz aktualizację danych strefy czasowej (w PHP, robi się to za pomocą timezonedb PECL pakiet), to wszelkie dane, które już przekonwertowałeś na UTC, mogą być nieprawidłowe.

Lepszym rozwiązaniem jest przechowywanie wielu wartości:

  • Oryginalna lokalna data i godzina

  • Oryginalna strefa czasowa (np. "America/New_York" )

  • Data i czas UTC przekonwertowane z wartości lokalnych

Jeśli chcesz sprawdzić, czy nadszedł czas na uruchomienie zadania, porównaj bieżącą datę i godzinę UTC z zapisaną wartością UTC.

Po zastosowaniu aktualizacji stref czasowych wyrzucasz poprzednio przekonwertowane wartości UTC dla wszystkich przyszłych wpisów i ponownie obliczasz nowe na podstawie zaktualizowanych danych.

Jeśli tego nie zrobisz, tracisz intencję pierwotnie podaną przez użytkownika. A jeśli nie będziesz aktualizować danych strefy czasowej, Twój system nie będzie wiedział o różnych zmianach zachodzących na całym świecie, takich jak zmiany wprowadzone w Egipcie na początku tego roku lub zmiany, które pojawią się w październiku w Rosji.

Ostatni punkt — jeśli zostanie prawidłowo zaimplementowany, strefa czasowa serwera nie powinna mieć znaczenia. Porównaj UTC z 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. php imap - pobierz treść i utwórz zwykły tekst

  2. SQL do sprawdzenia, czy baza danych jest pusta (brak tabel)

  3. jak dodać datę (DateTime.now) do bazy mySql w C#

  4. usługa MySQL na lokalnym komputerze została uruchomiona, a następnie zatrzymana

  5. MySQL — Wybierz najnowszą datę z zestawu kilku możliwych sygnatur czasowych?