Encore les dates avec MySQL [Résolu]

Signaler
Messages postés
954
Date d'inscription
mardi 11 mai 2004
Statut
Membre
Dernière intervention
11 novembre 2008
-
Messages postés
4
Date d'inscription
samedi 28 juillet 2007
Statut
Membre
Dernière intervention
27 mars 2008
-
Salut,
J'aimera séléctionner tout ce qui as entre le 2006-4-10 et le 2006-4-17
Dans ma table SQL j' ai une date de commencement et une date de fin (d' un evenement)
date_start et date_end
Leur type : datetime (oui je sais on peut gagner de la place en transformant le tout en un chiffre dans un int) (format : 0000-00-00 00:00:00)

date_start et date_end peuvent commencer avant le 2006-4-10 et finir après le 2006-4-17
Voici une ligne dans ma table
"id","date_start", "date_end", "sujet"
1, "2006-04-5", "2006-05-28", "Mon sujet"

Voici mon code qui marche po :-(
SELECT `id`,`date_start`,`date_end`,`sujet` FROM `calendrier` WHERE ("2006-4-10">=`date_start` AND `date_start`<="2006-4-17") OR ("2006-4-10">=`date_end` AND `date_end`<="2006-4-17");
Où est le bug ?
@+ et merci


Immortal-PC,
téléchargements,astuces ,entre-aide informatique , conseils pour vos problèmes d'ordi.
<!--StartFragment -->Grâce à Immortal-PC votre ordinateur passera les âges.

5 réponses

Messages postés
954
Date d'inscription
mardi 11 mai 2004
Statut
Membre
Dernière intervention
11 novembre 2008
2
Salut,
J' ai trouvé ;-)
pour ceux que ça intéresse voilà le code :
SELECT `id`,`date_start`,`date_end`,`titre`,`msg` FROM `calendrier` WHERE (`date_start`>="2006-4-10" AND `date_start`<="2006-4-17") OR (`date_start`<="2006-4-17" AND `date_end`>="2006-4-17") OR (`date_end`>="2006-4-10" AND `date_end`<="2006-4-17");
@+

Immortal-PC,
téléchargements,astuces ,entre-aide informatique , conseils pour vos problèmes d'ordi.
<!--StartFragment -->Grâce à Immortal-PC votre ordinateur passera les âges.
Messages postés
4
Date d'inscription
samedi 28 juillet 2007
Statut
Membre
Dernière intervention
27 mars 2008

Voilà, je n'ai pas eu le même problème que toi, mais je cherche à connaitre la requête SQL que tu as utilisé pour creer 2 variables de type DATETIME.
TIMESTRAMP n'accepte qu'un seul champ tel que:

var1 TIMESTRAMP NULL default CURRENT_TIMESTRAMP;
//var2 TIMESTRAMP NULL default CURRENT_TIMESTRAMP; (Génére une erreur de type doublon TIMESTRAMP)
J'ai été obligé pour mon 2ème champ de mettre:
var2 TIMESTRAMP NULL default NULL,
Je contourne le problème, tant que je peux ensuite réalimenter les champs par INSERT INTO ça ira.
Mais au début, je désirais entrer la date par DATE ou DATETIME ou même TIME, sous la forme ('d/m/y H:i').
Malheureusement impossible de générer la requête de création de table avec ça, je dois avoir un problème de codage...

var DATE('d/m/y H:i') //Erreur
var DATETIME('d/m/y H:i') //Erreur
var TIME('d/m/y H:i) //Erreur

var DATE NULL default 'd/m/y H:i';//Erreur
var DATETIME NULL default 'd/m/y H:i'; //Erreur
var TIME NULL default 'd/m/y H:i'; //Erreur

Merci d'avance si quelqu'un me trouve la bonne syntaxe pour avoir la date sous cette forme en création de table SQL.
J'utilise MySQL 5.1 et PhpMyAdmin 2.11.6.
Messages postés
954
Date d'inscription
mardi 11 mai 2004
Statut
Membre
Dernière intervention
11 novembre 2008
2
Salut !

la requette c 'est :
`champs_1` DATETIME NOT NULL

@+

Immortal-PC,
téléchargements,astuces ,entre-aide informatique , conseils pour vos problèmes d'ordi. 
<!--StartFragment -->Grâce à Immortal-PC votre ordinateur passera les âges.
Messages postés
4
Date d'inscription
samedi 28 juillet 2007
Statut
Membre
Dernière intervention
27 mars 2008

champ DATETIME NOT NULL
Ne fonctionne pas sur MySQL 5.1.
Messages postés
4
Date d'inscription
samedi 28 juillet 2007
Statut
Membre
Dernière intervention
27 mars 2008

J'ai contourné le problème j'ai creer une nouvelle table pour les dates.