sql >> Database teknologi >  >> RDS >> Mysql

MySQL CONVERT_TZ()

Hvis dette giver null, er TZ-tabellerne ikke blevet sat op:

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

Hvis du ikke har sat tidszonetabellerne op, kan du opdatere timeoffset i brugertabellen og derefter gøre:

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

Du har dog stadig brug for en måde at opdatere brugerens tidszone på.

Hvis du skriver dette til en webapplikation, kan du få tidszonen via javascript, her er en artikel der beskriver hvordan (har ikke prøvet dette, men det ser ud til at det vil virke).

Lidt af en forklaring med hensyn til 'interval' ovenfor...

En af de mere trick-konstruktioner i MySQL er brugen af ​​INTERVAL nøgleord, bedst vist som eksempel (den numeriske værdi kan være et udtryk eller feltværdien)

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

Du kan tilføje dem og trække dem fra, som du vil, det er derfor, jeg aldrig genere med dato/klokkeslæt tilføje/fradrag/konvertere funktioner

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 |
+---------------------+---------------------+

Du kan bruge negative tal (bør være gode til negative tidszoneforskydninger) disse er de samme:

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. Script hele databasen SQL-Server

  2. Forskellen mellem numerisk, float og decimal i SQL Server

  3. Forståelse af SQL Server-sikkerhedsfunktionen HAS_Permis_BY_Name og dens USE-tilfælde

  4. 4 måder at finde rækker, der indeholder små bogstaver i Oracle