8768 sujets

Développement web côté serveur, CMS

Bonjour,

J'essaie de comprendre comme je peux la fonction INTERVAL en SQL !
Pour information il s'agit d'une base de donnée MySQL avec comme moteur de stockage MyISAM, je sais pas si ça a une importance, mais autant le préciser Smiley smile .

Ce que je souhaite : récupérer dans ma base de donnée les articles du mois courant, ou des 7 derniers jours, peu importe pour le moment.

Code SQL :
SELECT 
*
FROM articles
WHERE datePublication_article 
BETWEEN CURRENT_DATE() AND (CURRENT_DATE() - INTERVAL 7 DAY)

Cependant, ça fonctionne pas Smiley ohwell

J'ai effectué un errorInfo() sur la requête, cependant ça me retourne seulement ceci :
Array ( [0] => 00000 [1] => [2] => )


Je vous remercie par avance de votre aide.
Modifié par NoLimit (07 Jun 2015 - 20:32)
Bonjour,

on dit "entre 17 et 18h" et pas "entre 18 et 17h" ...

expr BETWEEN min AND max

essaie en inversant ... min date d'abord, max date ensuite.
BETWEEN (CURRENT_DATE() - INTERVAL 7 DAY)  AND  CURRENT_DATE() 

Modifié par loicbcn (04 Jun 2015 - 15:59)
Merci de ta réponse Smiley cligne
Malheureusement, toujours le même résultat Smiley ohwell ça fonctionne pas.

Le champ datePublication_article est de type DATETIME, sais-tu si ça peut venir de là ?
Sincèrement, ça fais quelques semaines que je bloque sur INTERVAL. J'ai effectué de nombreuse syntaxe (DATE_SUB et DATE_ADD et cie) et exemple trouvé sur le web, aucune ne m'a donné de résultat. Le plus étrange, c'est que je n'ai aucune erreur, on me retourne ceci Array ( [0] => 00000 [1] => [2] => ) ... Smiley eek j'ai du mal à comprendre !

Smiley biggol
Bonjour,

j'étais tellement intrigué par ton pb que je me suis créé une mini base (myisam, datetime), et chez moi la requête (corrigé façon loicbcn) passe !
tu n'inverserais pas par hasard le jour et le mois dans ta saisie de date (on sait jamais sur une erreur d'inattention)

sinon désolé et surtout bon courage Smiley smile

ps : sinon ta requête dans un éditeur type mysql wokbench, elle dit quoi ?
Bonjour,

Non, concernant le format de date il s'agit bien du format américain yyyy-mm-dd Smiley smile

J'ai repris le tout à zero et j'ai pris soin de suivre le conseil de loicbcn et maintenant c'est fonctionnel !

Pour le retour d'array que j'avais Array ( [0] => 00000 [1] => [2] => ) à mon humble avis c'était simplement le fait que le résultat retournait rien du tout, étrange, ma base de donnée était pourtant bien rempli.

Mon problème est résolu Smiley cligne .
Merci à vous deux pour votre temps et votre aide.

EDIT : Concernant mysql wokbench je connais pas, mais à l’avenir je vais travailler avec ce type d'outil ! Smiley ravi
Modifié par NoLimit (07 Jun 2015 - 19:29)