Come posso ottenereMysql FROM_UNIXTIME come UTC
FROM_UNIXTIME
come UTC/GMT in MySQL? La data viene restituita nel fuso orario della connessione.
Non voglio modificare il fuso orario della connessione.
Come posso ottenereMysql FROM_UNIXTIME come UTC
FROM_UNIXTIME
come UTC/GMT in MySQL? La data viene restituita nel fuso orario della connessione.
Non voglio modificare il fuso orario della connessione.
Si sarebbe meglio impostare il fuso orario prima del tempo:
SET time_zone='UTC';
select FROM_UNIXTIME(1277942400);
Il motivo è che le conversioni che coinvolgono un fuso orario locale possono essere perdite. V'è un esempio di questo nel docs here (vedere il 4 ° comma, sotto la sezione UNIX_TIMESTAMP()
inizia con "Nota:")
la mia soluzione era
SELECT CONVERT_TZ(FROM_UNIXTIME(1277942400), @@session.time_zone,'UTC')
se CONVERT_TZ restituisce null, assicurarsi che la tabella di fuso orario di mysql è piena:
zypper install mysql-community-server-tools
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
Mi piace l'apolidia della soluzione – Erbureth
Che una grande soluzione :) –
è senza stato, ma non riesce con date ambigue, come conver_ttz non può conoscere il offset fuso orario del timestamp sorgente. –
So che questo è stato risposto, ma ancora mi piacerebbe contribuire:
Se non è il tuo server a produrre il fuso orario UTC con funzioni come NOW()
e FROM_UNIXTIME()
ecc., devi impostare il time_zone
come ha detto @Matt Johnson.
C'è una cosa che non ha menzionato: SET time_zone = timezone;
imposta solo il fuso orario per la connessione corrente. Utilizzare SET GLOBAL time_zone = '+00:00'
se si desidera che queste funzioni restituiscano/convertano le date in UTC per impostazione predefinita in modo da non dover impostare il fuso orario ogni volta che si desidera salvare alcune date basate su UTC.
Verifica le impostazioni correnti TIME_ZONE: SELECT @@global.time_zone, @@session.time_zone;
MySQL :: MySQL 5.5 Reference Manual :: 10.6 MySQL Server Time Zone Support
'SET time_zone = '+00: 00'' ha funzionato per me. Vedi la risposta di Mārtiņš Radiņš se vuoi che venga preservata. – lepe