Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Konwersja stref czasowych w zapytaniu SQL

Możesz użyć tego zapytania, nie martwiąc się o zmiany strefy czasowej.

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

Np.:

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

AKTUALIZACJA:

Podziękowania dla Alexa Poole'a za przypomnienie, że jeśli strefa czasowa nie jest określona, ​​do konwersji używana jest lokalna strefa czasowa.

Aby wymusić rozpoznawanie daty jako GMT, użyj from_tz.

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pytania do rozmowy kwalifikacyjnej Oracle

  2. Usuń z dołączeniem w Oracle sql Query

  3. ORA-12519 TNS:nie znaleziono odpowiedniej obsługi serwisowej

  4. Wywołanie niezdefiniowanej funkcji oci_connect, php_oci8_12c.dll, windows 8.1, php5.6.6

  5. Funkcja DATEDIFF w Oracle