Zeitzone-Konvertierung in SQL-Abfrage
Bin ich mit einer Abfrage zu bekommen, einige Eingegangene Antrag Datum von Oracle DB gespeichert wird als GMT interpretiert. Jetzt habe ich zu konvertieren, das auf Eastern standard/daylight savings time, während das abrufen.
Ich bin mit der folgenden Abfrage:
select to_char (new_time(application_recv_date,'gmt','est'), 'MON dd, YYYY') from application
Es funktioniert gut für Standard-Zeit. Aber für die Sommerzeit, die wir brauchen, um zu konvertieren, 'edt', basierend auf der Zeitzone-info. Ich bin mir nicht ganz sicher, wie dies zu tun. Bitte helfen Sie mir
Für das, was Datenbank ist das? Nicht alle Datenbanken mit SQL-Unterstützung die gleichen Wege im Umgang mit Zeitzonen.... bitte aktualisieren Sie Ihre tags mit den entsprechenden info -
Sorry, verpasst Sie es..jetzt Aktualisiert (Oracle)
oracle
, sql-server
, mysql
, postgres
oder was auch immer du benutzt!Sorry, verpasst Sie es..jetzt Aktualisiert (Oracle)
InformationsquelleAutor satyanarayana | 2014-04-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie diese Abfrage verwenden, ohne sich sorgen zu machen über die Zeitzone ändert.
Ex:
EDT:
EST:
UPDATE:
Danke an Alex Poole daran erinnert, dass, wenn die Zeitzone nicht angegeben, wird die lokale Zeitzone verwendet für die Konvertierung.
Zu zwingen, das Datum zu erkennen, wie GMT, verwenden Sie from_tz.
select cast(date'2014-12-08' as timestamp) d1, new_time( cast(date'2014-12-08' as timestamp) ,'gmt','edt') d2, cast(date'2014-12-08' as timestamp) at time zone 'US/Eastern' d3 from dual
D1 ==> 08-DEZ-14 12.00.00.000000000 BIN D2 ==> 07-DEC-2014 20:00:00 D3 ==> 07-DEC-14 01.30.00.000000000 PM US/EASTERNist die Umwandlung von GMT, MESZ, eine Stunde aus EatÂPeach Beispiel, denn es sollte nicht in der Sommerzeit im Dezember - mit EST funktionieren würde, aber es ist einfacher und sicherer in der Handhabung Regionen.
d3
ist comverting von Ihrem lokalen timezone, nicht von GMT.Poole - vielen Dank für die ließ mich wissen, dass ich die Umwandlung wurde von der lokalen Zeitzone lieber als die GMT.
wenn Ihre Quelldaten wirklich ist GMT nicht UK-Zeit (GMT/BST), dann können Sie erzwingen, dass es anerkannt zu werden, so:
select from_tz(cast(application_recv_date as timestamp), 'GMT') at time zone 'US/Eastern' from ...
.ja. Ich wusste, dass
InformationsquelleAutor Noel
In Oracle, können Sie erreichen dies mit der folgenden Abfrage:
Wo
Australia/Sydney
ist der name der Zeitzone, in der Sie konvertieren möchten Ihre Zeit.InformationsquelleAutor Jitender Kumar