sql >> Database >  >> RDS >> Oracle

Tijdzoneconversie in SQL-query

U kunt deze zoekopdracht gebruiken, zonder dat u zich zorgen hoeft te maken over veranderingen in de tijdzone.

select to_char(cast(application_recv_date as timestamp) at time zone 'US/Eastern',
               'MON dd, YYYY'
              )
from application;

Bijv.:

EDT:

select cast(date'2014-04-08' as timestamp) d1,
       cast(date'2014-04-08' as timestamp) at time zone 'US/Eastern' d2
from dual;

D1                                 D2
---------------------------------- -------------------------------------------
08-APR-14 12.00.00.000000 AM       07-APR-14 08.00.00.000000 PM US/EASTERN

EST:

select cast(date'2014-12-08' as timestamp) d1,
       cast(date'2014-12-08' as timestamp) at time zone 'US/Eastern' d2
from dual;

D1                                 D2
---------------------------------- -------------------------------------------
08-DEC-14 12.00.00.000000 AM       07-DEC-14 07.00.00.000000 PM US/EASTERN

BIJWERKEN:

Met dank aan Alex Poole voor het eraan herinneren dat, wanneer de tijdzone niet is gespecificeerd, de lokale tijdzone wordt gebruikt voor conversie.

Gebruik from_tz om te forceren dat de datum wordt herkend als GMT.

from_tz(cast(date'2014-12-08' as timestamp), 'GMT') at time zone 'US/Eastern'


  1. De impact van DBCC CHECKDB minimaliseren:DO's en DONT's

  2. Is het sleutelwoord 'as' vereist in Oracle om een ​​alias te definiëren?

  3. Voorloopnullen verwijderen uit een veld in een SQL-instructie

  4. MySQL> Tabel bestaat niet. Maar het doet (of zou moeten)