déjà c'est faux, si 23h59 c'est toujours moins de 5 min avant 0h00 ce n'est déjà plus le même jour.
il faut coller ta date et ton heure, les transformer en timestamp UNIX_TIMESTAMP(CONCAT(d_DispatchDate, ' ', t_DispatchTime)) et faire UNIX_TIMESTAMP(CONCAT(d_DispatchDate, ' ', t_DispatchTime)) >= UNIX_TIMESTAMP(NOW()) + 300.
j'adore les timestamp unix, on doit pouvoir faire avec les timestamp directement mais j'ai la flemme
Dernière modification le 24/09/08 à 15:56 par Akshell
24 septembre 2008 à 15:55
en MySQL 5 tu peux aussi faire :
TIMESTAMPDIFF(SECOND, CONCAT(d_DispatchDate, ' ', t_DispatchTime) , NOW()) < 300
ou
TIMESTAMPDIFF(MINUTE, CONCAT(d_DispatchDate, ' ', t_DispatchTime) , NOW()) < 5
et pour faire plus simple, tu fusionnes tes champs et tu indexes. parce que là ça va ramer un peu.
Dernière modification le 24/09/08 à 16:07 par Akshell
24 septembre 2008 à 16:01
Merci Akshell.
Akshell a écrit
déjà c'est faux, si 23h59 c'est toujours moins de 5 min avant 0h00 ce n'est déjà plus le même jour.
Oui. C'est pour cela que je dis que c'est en bois.
Akshell a écrit
il faut coller ta date et ton heure, les transformer en timestamp UNIX_TIMESTAMP(CONCAT(d_DispatchDate, ' ', t_DispatchTime)) et faire UNIX_TIMESTAMP(CONCAT(d_DispatchDate, ' ', t_DispatchTime)) >= UNIX_TIMESTAMP(NOW()) + 300.
j'adore les timestamp unix, on doit pouvoir faire avec les timestamp directement mais j'ai la flemme
Oué, l'idée m'avait traversé l'esprit pour les timestamp unix mais j'avais pas pensé au CONCAT...
Bon. Pour l'instant ça ne marche pas. Je vais chercher pourquoi.
Akshell a écrit
en MySQL 5 tu peux aussi faire :
TIMESTAMPDIFF(SECOND, CONCAT(d_DispatchDate, ' ', t_DispatchTime) , NOW()) < 300
ou
TIMESTAMPDIFF(MINUTE, CONCAT(d_DispatchDate, ' ', t_DispatchTime) , NOW()) < 5
Je suis en 4.1 :/
Akshell a écrit
et pour faire plus simple, tu fusionnes tes champs et tu indexes. parce que là ça va ramer un peu.
Je sais. La table actuelle : non seulement elle n'a pas les champs Date et Time indexés, mais en plus elle fait dans les 7 Go. Et c'est une table mensuelle...
La ruse qu'on a trouvé est de faire aussi le SELECT d'après la valeur d'un compteur auto-increment. On a passé les requêtes de 2 minutes à 2 secondes comme ça :)
J'aurai bien regroupé les champs Date et Time, mais vu que beaucoup de processus reposent sur ce système, on m'en a dissuadé.
24 septembre 2008 à 16:20
Y'a moyen de faire afficher des valeurs genre UNIX_TIMESTAMP(NOW()) par MySQL ou via phpMyAdmin pour débugger ?
24 septembre 2008 à 16:24
LeChat a écrit
Bon. Pour l'instant ça ne marche pas. Je vais chercher pourquoi.
parce que j'ai inversé le signe :/
WHERE UNIX_TIMESTAMP(CONCAT(d_DispatchDate, ' ', t_DispatchTime)) >= UNIX_TIMESTAMP(NOW()) - 300
24 septembre 2008 à 16:34
Akshell a écrit
SELECT NOW(), UNIX_TIMESTAMP(NOW());
sans rien d'autre
Merci.
Akshell a écritLeChat a écrit
Bon. Pour l'instant ça ne marche pas. Je vais chercher pourquoi.
parce que j'ai inversé le signe :/
WHERE UNIX_TIMESTAMP(CONCAT(d_DispatchDate, ' ', t_DispatchTime)) >= UNIX_TIMESTAMP(NOW()) - 300
Ahem. Tu dois te dire que je suis un putain d'assisté.
24 septembre 2008 à 16:38
Répondre au sujet
Vous devez être identifié pour participer à ce topic.
Nicolas le jardinier