2017-04-20 8 views
1

je stocke les événements avec Unix Horodatage sur ma base de données Quand je veux les chercher comme datetime MySQL avec FROM_UNIXTIME ou DATE_ADD fonctions différentes valeurs générées par le droit égal au fuseau horaire de mon emplacement actuel (UTC +3: 30). Je dois utiliser la fonction DATE_ADD car le FROM_UNIXTIME ne fonctionne pas pour les horodatages négatifs. comment puis-je résoudre ce problème ?! Merci d'avance.fuseau horaire MySQL add_date question

Ici, il est ma requête:

SELECT topic, `start`, FROM_UNIXTIME(`start`), DATE_ADD('1970-01-01 1:0:0', INTERVAL `start` SECOND) FROM uzr_event 

Et le voici Réponse: Results

Répondre

0

La raison pour laquelle le résultat est compensé parce que la chaîne vous passez à DATE_ADD est interprété par la fuseau horaire de session, plutôt que UTC.

Vous pouvez le faire avant votre requête:

SET time_zone = 'UTC'; 

Ou vous pouvez laisser le fuseau horaire de la session de l'équation et juste changer ceci:

DATE_ADD('1970-01-01 1:0:0', INTERVAL `start` SECOND) 

à ceci:

DATE_ADD(FROM_UNIXTIME(0), INTERVAL `start` SECOND)