sql >> Databasteknik >  >> RDS >> Mysql

MySQL CONVERT_TZ()

Om detta ger null har TZ-tabellerna inte ställts in:

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

Om du inte har ställt in tidszonstabellerna kan du uppdatera timförskjutningen i användartabellen och sedan göra:

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

Du skulle dock fortfarande behöva ett sätt att uppdatera användarens tidszon.

Om du skriver detta för en webbapplikation kan du få tidszonen via javascript, här är en artikel som beskriver hur (har inte provat detta men det ser ut som att det kommer att fungera).

Lite av en förklaring med avseende på 'intervall' ovan...

En av de fler trickkonstruktionerna i MySQL är användningen av INTERVAL nyckelord, som bäst visas som exempel (det numeriska värdet kan vara ett uttryck eller fältvärdet)

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

Du kan lägga till dem och subtrahera dem hur du vill, det är därför jag aldrig bry dig om funktionerna för att lägga till/subtrahera/konvertera datum/tid

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 använda negativa siffror (borde vara bra för negativa tidszonförskjutningar) dessa är desamma:

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. Tips för att lagra dina TimescaleDB-säkerhetskopier i molnet

  2. PHP och Postgres:fångar fel?

  3. Den heliga graalen att rengöra input och output i php?

  4. Hur man konverterar en Unix-tidsstämpel till ett datum-/tidsvärde i SQL Server