sql >> Databasteknik >  >> RDS >> PostgreSQL

Konvertera en UTC-tidszon i postgresql till EST (lokal tid)

Här i London ligger vi för närvarande 1 timme före UTC. Så - om jag tar din tidszon utan tidsstämpel och säger att den är i UTC kommer jag att få den utskriven för min lokala tidszon.

richardh=> SELECT ((timestamp '2015-10-24 16:38:46') AT TIME ZONE 'UTC');
        timezone        
------------------------
 2015-10-24 17:38:46+01
(1 row)

Men du vill ha "EST" som verkar vara någonstans i Amerika, att döma av värdet som returneras. Du kan slå in uttrycket i en liten SQL-funktion om du vill.

richardh=> SELECT ((timestamp '2015-10-24 16:38:46') AT TIME ZONE 'UTC') AT TIME ZONE 'EST';
      timezone       
---------------------
 2015-10-24 11:38:46
(1 row)

Edit:hur man gör det i en fråga

SELECT ((stored_timestamp AT TIME ZONE 'UTC') AT TIME ZONE 'EST') AS local_timestamp
FROM my_table;

Du kommer förmodligen att vilja skaffa en introduktionsbok om SQL om den här typen av saker orsakar dig problem.



  1. Kommaseparerade värden med samma antal rader

  2. mysql:se alla öppna anslutningar till en given databas?

  3. Fel vid användning av oracle.dataaccess.dll

  4. beräkna och visa ett datum som "sekunder sedan", "minut sedan", "timmar sedan" etc.