2016-06-02 8 views
1

Wie konvertiert man dieses Datum in die CET-Zeit und holt das entsprechende upd_date von unten select-Anweisung.Wir verwenden Trigger für reg_Date und upd_Date, die zusammen mit den erforderlichen Daten eingefügt werden. Das upd_date wird in UTC eingefügt 0:00 timestamp

SELECT MAX(TO_DATE(TO_CHAR(upd_date,'yyyy-mm-dd HH:MI:SS'),'yyyy-mm-dd HH:MI:SS')) AS MAX_UPD_DATE 
FROM MY_TABLE 
WHERE user_id='SOMEVALUE'; 

Der upd_date-Speicher in MY_TABLE wird als Ergebnis angezeigt. Aber ich will nicht UTC + 0: 00 Zeit. Ich möchte MEZ Zeit (Europa/Stockholm) Bitte helfen Sie mir dabei.

Antwort

0

Sie können SWITCHOFFSET() in SQL verwenden, um das Datetimeoffset in die von Ihnen bevorzugte Zeitzone zu ändern.

Diese Änderung wirkt sich nicht auf das ursprüngliche datetimeoffset gemäß MDN aus. Siehe Link here

Zum Beispiel

SELECT SWITCHOFFSET(column_name, '-05:00') FROM my_table 

Für Oracle gibt es Funktionen, die Sie verwenden können. Zum Beispiel TZ_OFFSET(timezone)Documentation oder

SELECT FROM_TZ(column_name, 'US/Eastern') AT TIME ZONE 'Europe/London' 

sind hier mehr Informationen über die AT TIME ZONE-Klausel. link. Wenn Sie alle Zeitzonen zur Verfügung, um sehen möchten, können Sie diese Abfrage ausführen:

SELECT DISTINCT tzname FROM V$TIMEZONE_NAMES; 

Das einzige, was ich nicht zu empfehlen ist das Hinzufügen oder Daten subtrahiert, weil das zu mehr Fehler anfällig ist.

0

Wählen Sie SYSTIMESTAMP AT TIME ZONE 'CET' von Dual; Dies funktionierte für mich