2 votes

MYSQL Convertir l'horodatage en mois

J'ai un certain problème avec les fonctions de date de mysql.

J'essaie de comparer la valeur de THIS MONTH à l'horodatage donné dans la base de données.

Par exemple, le mois d'aujourd'hui est juin, et l'horodatage est 1369967316

Et j'essaie de déterminer si cet horodatage est au mois de juin.

$query = db_query("SELECT * FROM users WHERE MONTH(FROM_UNIXTIME(CURDATE())) = MONTH(1369967316)");

//count total members this mont
$members_month = $query->rowCount();

donc si j'utilise le rowCount, le $members_month devrait avoir la valeur de 1.

Malheureusement, cela ne fonctionne pas. Toute aide serait appréciée.

J'ai vu des réponses qui correspondent un peu à la mienne, mais elles n'ont pas fait mouche ou je ne les ai pas bien appliquées.

mysql obtient le mois à partir de l'horodatage ne fonctionne pas

Comment utiliser curdate() dans une clause where contre une colonne unixtimestamp (bigint) ?

6voto

Steven Moseley Points 6405

Cela fonctionne pour moi :

mysql> SELECT MONTH(FROM_UNIXTIME(1369967316));
+----------------------------------+
| MONTH(FROM_UNIXTIME(1369967316)) |
+----------------------------------+
|                                5 |
+----------------------------------+

Votre problème vient probablement du fait que 1369967316 est le 30 mai, et non le mois de juin (comme vous l'attendez), ce qui entraîne une inégalité avec MONTH(CURDATE()) .

mysql> SELECT FROM_UNIXTIME(1369967316);
+---------------------------+
| FROM_UNIXTIME(1369967316) |
+---------------------------+
| 2013-05-30 22:28:36       |
+---------------------------+

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X