Re: statistique: group by ?
Tout d'abord, je vais corriger un point: c'est très bien d'utiliser un DATE_ADD, mais tu peux l'utiliser beaucoup plus simplement.
Au lieu de faire :
Code:
date_format(date_add(date_post, interval 1 day),'%d%m%y'')) >= date_format(date_close,'%d%m%y')
Tu peux faire tout simplement ça:
Code:
date_add(date_post, interval 1 day) >= date_close
... C'est plus clair et plus rapide.
Sinon, moi aussi jai rencontré ce problème d'absence de DATE_DIFF lié à MySQL 4.0 (tu ne serais pas sous EasyPHP 1.7, par hasard? :wink: )
Tu peux éventuellement essayer de compenser avec un UNIX_TIMESTAMP. Cette fonction te retournera le nombre de secondes écoulées depuis l'"epoch" (1970/01/01 00:00:00). En faisant une soustraction une division par le nombre de secondes dans une journée (86400) et un arrondi (FLOOR), tu obtiens le nombre de jours.
Par contre il y a un problème: UNIX_TIMESTAMP retourne un entier 'unsigned' et tu as parfois de mauvaises surprises quand tu soustrais deux entiers non signés (dépassement de capacité), même en faisant un:
Code:
CAST(UNIX_TIMESTAMP(date_post) AS SIGNED)
Tu peux donc essayer de faire un :
Code:
1 2 3 4 5 6 7 8 9 10
| SELECT *,
FLOOR(
( CAST(UNIX_TIMESTAMP(date_close) AS SIGNED)
- CAST(UNIX_TIMESTAMP(date_post) AS SIGNED))
/ 86400
) AS NbJours
(...)
GROUP BY NbJours |
... mais je doute que ça marche du premier coup !
(et encore, là j'ai même pas pris en compte le cas où date_close est NULL...)