2016-10-03 1 views
0

J'ai une requête fixe comme ci-dessous, des comportements étranges que j'essaie de comprendre c'est que chaque fois que je lance cette requête à différents moments, j'ai des résultats différents :(134, 143, 147, 152 , 158)Comportement étrange avec la fonction count dans MySQL 5.6

Voici comment définir dans le tableau créé:

`user_registration_timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 

select count (*) des utilisateurs où user_registration_timestamp> = "03/10/2016 12:33:26" et user_registration_timestamp < " 2016-10-03 15:33:26 ";

Pourquoi cela est-il arrivé? L'horodatage est fixe, il n'est pas variable, alors quelles sont les raisons de voir ce comportement étrange avec MySQL?

+0

Une requête déterministe peut retourner différents ensembles de données si les données sous-jacentes changent mais je suppose que vous ne me demanderiez pas si c'était le cas ... –

+0

@ Álvaro González Comment serait possible de changer quand user_register_timestamp est déjà passé pour cela temps spécifique? –

+0

J'ai compris. Vérifie ma réponse –

Répondre

0

Votre requête retournera différents comptes tant que les nouveaux utilisateurs seront enregistrés. Vous pouvez trouver les détails si vous remplacez COUNT(*) par *.

Je suppose que vous n'avez pas vraiment vérifié cela parce que vous supposez que 2016-10-03 15:33:26 est une date dans le passé, donc il n'y a aucune possibilité d'avoir de nouveaux utilisateurs. Le fait est que c'est un heure locale et à partir de maintenant (2016-10-03 14:30 UTC) c'est une date antérieure dans les fuseaux horaires de l'Est et encore à venir partout ailleurs.

Si le serveur MySQL n'est pas configuré pour utiliser votre fuseau horaire local mais que votre code le suppose, cela peut prêter à confusion.

+0

thx pour votre réponse, mais je veux être sûr que si cela se produit, y at-il un commentaire dans mysql t force ts oriental? Comment puis-je le faire? –

+0

[Comment définir le fuseau horaire de mysql?] (Http://stackoverflow.com/questions/930900/how-to-set-time-time-zone-of-mysql#19069310) –

+0

non, comment forcer l'utilisation de ma requête ts locaux? -J'ai ajouté plus d'informations. –