2017-04-18 4 views
2

Guten Tag,Mysql - Konvertieren lokale Datum im UTC-Format

ich mysql Daten in diesem Format gespeichert habe:

enter image description here

In meiner SQL-Abfrage Ich möchte diese Daten in UTC-Format erhalten . Ich habe CONVERT_TZ (dt, from_tz, to_tz) Funktion versucht, aber ich kann nicht bestimmen, wie ich from_tz für die Daten bekommen kann. Ich weiß, dass to_tz wird ‚UTC‘ oder ‚0.000‘

+0

Sie können diese beziehen https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_convert-tz –

Antwort

1

dies erwarten Versuchen:

select convert_tz(`date`, replace(substring_index(`date`, ' ', -1), '00', ':00'), '+00:00') 

Edit:

select convert_tz(`date`, concat(left(substring_index(`date`, ' ', -1), 3), ':', right(substring_index(`date`, ' ', -1), 2)), '+00:00') 
+0

Es funktionierte, bis ich Zeitstempel wie diese fand: 2017-04-17 09:21:33 +0530 ... In diesem Fall gibt es NULL –

+0

@WarisAli Überprüfen Sie den Bearbeitungsteil. – Blank

+0

yup! Das würde reichen. Vielen Dank! –

0

Nun, wie mysql TZ-Qualifikation in Datum ignoriert, ich schlage vor, Sie tun, um eine semimanual TZ Umwandlung

select   
    date_add("2017-04-18 15:15:15 +1000", interval substring("2017-04-18 15:15:15 +1000", -5, 3) hour), 
    date_add("2017-04-18 15:15:15 +1000", interval substring("2017-04-18 15:15:15 -1000", -5, 3) hour) 
; 

das Ergebnis in UTC-Zeitzone wird wie Sie

+0

Dies ist ein guter Ansatz, aber es fügt immer die Zeit hinzu, obwohl die lokale Zeitzone +0600 ist. In diesem Fall sollte die Zeit subtrahiert werden. –

Verwandte Themen