Accueil > Forum > > > > Requete sql date/durée
Requete sql date/durée
samedi 19 novembre 2011 à 02:22:42 |
Requete sql date/durée

555clR
|
Bonjour !
voilà quelques jours que je réfléchis à une manière de questionner une base de données.
Dans une table d'évènements, on trouve un champ date, un champ durée(qui peut s'étendre sur plusieurs jours).
l'idée serait d'afficher les événements d'un jour particulier, sachant que la fin de certains évènements est après le début de la journée et d'autres se terminent après la fin.
Je ne vois pas comment tourner la requête.
j'avais d'abord fait comme ça :
'SELECT *
FROM events
WHERE (
(MONTH(date_debut_event)='.$numero_mois.'
OR MONTH(date_fin_event)='.$numero_mois.')
AND (YEAR(date_debut_event) = '.$annee.'
OR YEAR(date_fin_event) = '.$annee.'))
&& '.$jour_lu.' BETWEEN UNIX_TIMESTAMP(date_debut_event) AND UNIX_TIMESTAMP(date_fin_event)
ORDER BY date_debut_event';
Et puis j'ai finalement fait ça :
'SELECT *
FROM
evenements E,
evnmt_type T
WHERE
day(E.event_date_debut) = '.$this->_timstp_jr['jr'].'
&& month(E.event_date_debut) = '.$this->_timstp_jr['mois'].'
&& year(E.event_date_debut) = '.$this->_timstp_jr['an'].'
&& E.event_type = T.evnmt_type_id
ORDER BY hour(E.event_date_debut)';
mais ça ne filtre pas les résultats comme il faudrait (la sélection ne se fait qu'à partir du champ date de début d'evenement).
auriez-vous une idée? Merci d'avance de votre aide
|
|
samedi 19 novembre 2011 à 17:17:01 |
Re : Requete sql date/durée

cgandco
|
Bonjour,
J'ai deux petites précisions qu'il nous manque :
1) Je suppose que ton champ Durée est un entier, mais il est en quelle unité : seconde, minute, ...
2) si la date cherchée est le 19/11/2011 à 16h20 et que ton événement se termine le 19/11/2011 à 15h00
ou
la date cherchée est le 19/11/2011 à 6h00 et que ton événement débute le 19/11/2011 à 8h00
L'événement doit'il être listé ?
Bonne journée
Faites simple, aussi simple que possible, mais pas simpliste.
A. Einstein.
|
|
samedi 19 novembre 2011 à 18:00:05 |
Re : Requete sql date/durée

555clR
|
Bonjour cgandco,
pour répondre à tes questions :
1/ mon champ mysql pour la date de début est de type datetime, et mon champs pour la durée est de type varchar... et puis après récupération je transforme.
Je devrais sans doute mettre le 1er en type timestamp, et le second en secondes/mn... ce serait plus logique en effet.
2/ je me suis sans doute mal exprimée.
L'idée est d'afficher un jour, et visualiser tous les évènements qui sont dans cette journée.
par exemple :
je veux voir ce qu'il se passe le 12juillet...
Je verrais de ma base de données tous les évènements qui se déroulent le 12 (qui commencent et terminent), mais aussi tous les événements qui ont débuté avant le 12 et qui se terminent après... c'est bien là mon pb. comment calculer ça?
Merci en tous les cas de ta réponse et de ton intérêt. Bonne fin de journée
j'espère que c'est plus clair...
|
|
samedi 19 novembre 2011 à 19:13:46 |
Re : Requete sql date/durée

cgandco
|
Réponse acceptée !
Bonjour,
Je n'ai jamais travaillé avec mysql mais avec sql server.
en principe cela doit être équivalent.
Pour moi Datetime pour la date c'est bien.
dans l'expression suivante (1) le resultat est la date de début le matin à minuit.
convert(datetime,convert(varchar(2),datepart(day,date_debut)) + '/' + convert(varchar(2),datepart(month,date_debut)) + '/' + convert(varchar(4),datepart(year,date_debut)))
dans l'expression suivante (2) le résultat est la date de la fin de l'événement le matin à minuit.
convert(datetime,convert(varchar(2),datepart(day,dateadd(minute,durée,date_debut))) + '/' + convert(varchar(2),datepart(month,dateadd(minute,durée,date_debut))) + '/' + convert(varchar(4),datepart(year,dateadd(minute,durée,date_debut))))
dans l'expression suivante (3) le résultat est la date de la fin de l'événement le soir à minuit.
Tu dois donc filtrer ta table pour que
expression(1) <= jour_analysé and jour_analysé <= expression(3)
J'espère que la conversion vers mysql est simple.
Rq : suivant la configuration de mysql tu devras peut être inverser la conversion de date jour/mois/année ou année/mois/jour
Bonne soirée
Faites simple, aussi simple que possible, mais pas simpliste.
A. Einstein.
|
|
samedi 19 novembre 2011 à 19:30:28 |
Re : Requete sql date/durée

cgandco
|
Réponse acceptée !
Encore moi,
plus simple pour retirer les heures et les minutes :
convert(datetime,convert(varchar,date_debut,104),104)
A+
Faites simple, aussi simple que possible, mais pas simpliste.
A. Einstein.
|
|
samedi 19 novembre 2011 à 20:02:27 |
Re : Requete sql date/durée

555clR
|
oui, c'est exactement ça. Je vais tourner un peu autour ce soir mais je crois que c'est exactement ce que je cherche à faire.
je ne parvenais pas à trouver un moyen d'y arriver.
Je te remercie beaucoup.
Je reviendrais par là lorsque j'aurais qqchose d'opérationnel.
merci encore et bonne soirée également.
PS : et sinon oui pour mysql, annee/mois/jour tjs.
|
|
samedi 19 novembre 2011 à 20:37:33 |
Re : Requete sql date/durée

cgandco
|
Réponse acceptée !
encore un ooooppppsss
je ne t'ai pas donné l'expression 3 (le résultat est la date de la fin de l'événement le soir à minuit.)
c'est dateadd(day,1,expression2)
et le dernier petit bug (j'espère)
pas expression(1) <= jour_analysé and jour_analysé <= expression(3)
mais expression(1) <= jour_analysé and jour_analysé < expression(3)
car tu ne donneras pas la date à chercher avec des heures:minutes donc tu aurais avec le = les événements de la veille aussi.
bonne soirée
Faites simple, aussi simple que possible, mais pas simpliste.
A. Einstein.
|
|
lundi 21 novembre 2011 à 05:50:00 |
Re : Requete sql date/durée

555clR
|
 J'ai mit le temps mais j'ai finit par faire :
en php pour récupérer le jour qui m'intéresse :
//affichage du jour (à 00:00:00)
if(!isset($_GET['d']) && !isset($_GET['m']) && !isset($_GET['y']))
{
// Si rien dans l'url, récupération de la date du jour
$timestamp_jour = @mktime(0, 0, 0, date('m'), date('d'), date('Y'));
}
else
{
//sinon récupération de la date envoyée ds url
$timestamp_jour = @mktime(0, 0, 0, $_GET['m'], $_GET['d'], $_GET['y']);
}
$timestamp_transfo_date = date('Y',$timestamp_jour).'-'.date('m',$timestamp_jour).'-'.date('d',$timestamp_jour);
et ma requête :
(la durée de l'évenement est enregistrée en time dans ma base de données)
SELECT *
FROM evenements E, evnmt_type T
WHERE
(date(E.event_date_debut) <= date("'.$timestamp_transfo_date.'"))
&& (date("'.$timestamp_transfo_date.'") < date(DATE_ADD(DATE_ADD(E.event_date_debut,INTERVAL E.event_duree HOUR_SECOND), INTERVAL 1 DAY)))
&& E.event_type = T.evnmt_type_id
ORDER BY day(hour(E.event_date_debut))
tout marche impec.
 je suis aux anges
Je te remercie encore de ton aide précieuse cgandco: manquant cruellement de logique, je n'aurais jamais trouvé seule.
|
|
Cette discussion est classée dans : fin, date, debut, event, jr
Répondre à ce message
Sujets en rapport avec ce message
Problème de requêtes avec date [ par suzy26 ]
Bonjour à toi,J'ai crée un bdd sur les manifestations. J'ai plusieurs champ dont debut et fin qui correspondent à la date de début et de fin de l'évèn
CompareValidator de deux dates [ par mael974 ]
brj tt le monde .... tit souci ek le comparevalidator .... je cherche a comparer 2 dates(date fin >date debut) choz super classique !!! voila seulemen
trouver les date de debut et de fin a partir d'un numero de semaine [ par kulinicm ]
salut,j'ai un probleme je n'arrive pas a trouver les date de debut et de fin d'un semaine a partir du numero de cette semaine ainsi que de l'annee.qq'
verifier date reele [ par artagnan ]
SAlut mais est ce possible de récupérer l heure genre GMT , l heure internet en asp je fait un site achat de coupon en ligne et les coupons sont aff
pb pour faire un prog [ par taillecrayon ]
Bonsoir,j'essaye de faire un prog :on tape un texte avec e-mail(dans le textbox :textann) le prog rend le texte avec l'e-mail en lien(si on clique de
convertion dim vers entier [ par anubis52100 ]
bonjour,voila je souhaite convertire ma chaine en entier pour l'utilisé dans mon if!mercicode ASP 'jour debut dim jourdeb jourdeb=debut jourdeb=mi
comparer des heures [ par ludwigfve ]
Bonjour, a tousPouvez vous m'aider svpje cherche a comparer des heures a savoir lors d'un post d'un formulaire avec heure de debut et de fin , je veux
JOURS OUVRES [ par ZAINANE ]
SALUT J'ai besoin d'une requete SQL SERVER à partir de VB6 qui retourne le nombre de jours ouvrés ou jours fin de semaine entre deux dates. la table S
Access [ par zbe ]
allixBonjour, voila ma requet sur une base access le champ date_debut est en format date.sessions.Source = "SELECT * FROM t_sessions WHERE code_cour
l'HEURE EST GRAVE [ par bakchlada ]
salut c'est encore moi !! (j'entend d'ici les commentaires genre : "oh NON pas celui la ,pfff......") mon probleme cette fois ci concerne la gestion d
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|