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

Konwersja MySQL_TZ()

Jeśli daje to wartość null, oznacza to, że tabele TZ nie zostały skonfigurowane:

SELECT CONVERT_TZ(now(),'US/Eastern','US/Central');

Jeśli nie masz skonfigurowanych tabel stref czasowych, możesz zaktualizować przesunięcie godzin w tabeli użytkownika, a następnie:

select utc_timezone() - interval user_timezone_offset_in_hours hour
from userinfo a
where user_id = 999;

Jednak nadal będziesz potrzebował sposobu na zaktualizowanie strefy czasowej użytkownika.

Jeśli piszesz to dla aplikacji internetowej, możesz uzyskać strefę czasową za pomocą javascript, oto artykuł który opisuje, jak (nie próbowałem tego, ale wygląda na to, że zadziała).

Trochę wyjaśnienia w odniesieniu do „przedziału” powyżej...

Jedną z bardziej skomplikowanych konstrukcji w MySQL jest użycie INTERVAL słowo kluczowe, najlepiej pokazane na przykładzie (wartość liczbowa może być wyrażeniem lub wartością pola)

select now() today, now() - interval 1 day yesterday;
+---------------------+---------------------+
| today               | yesterday           |
+---------------------+---------------------+
| 2011-05-26 13:20:55 | 2011-05-25 13:20:55 |
+---------------------+---------------------+

Możesz je dodawać i odejmować w dowolny sposób, dlatego nigdy zawracać sobie głowę funkcjami dodawania/odejmowania/konwertowania daty/godziny

select now() a, now() - interval 1 day + interval 4 hour + interval 8 minute b;
+---------------------+---------------------+
| a                   | b                   |
+---------------------+---------------------+
| 2011-05-26 13:24:16 | 2011-05-25 17:32:16 |
+---------------------+---------------------+

Możesz użyć liczb ujemnych (powinny być dobre dla ujemnych przesunięć stref czasowych), są to takie same:

select now() - interval 1 month a, now() + interval -1 month b;
+---------------------+---------------------+
| a                   | b                   |
+---------------------+---------------------+
| 2011-04-26 13:38:05 | 2011-04-26 13:38:05 |
+---------------------+---------------------+


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pobieranie danych z bazy danych MySQL do listy rozwijanej html

  2. MySQL i PHP:UTF-8 ze znakami cyrylicy

  3. PHP PDOException:SQLSTATE[HY093]:Nieprawidłowy numer parametru

  4. kolumna aktualizacji mysql z wartością z innej tabeli

  5. Podziel ciąg i przeprowadź pętlę przez wartości w procedurze MySql