Problème tout bête (normallement :) ) avec les date/time - SQL/NoSQL - Programmation
Marsh Posté le 18-06-2007 à 18:06:35
Bonjour,
Comme tout appareil électro-ménager normalement constitué, MySql possède un mode d'emploi. Dans celui-ci, nous y trouvons miraculeusement une rubrique concernant les fonctions de dates et d'heures que tu aurais pu trouver seul avec un minimum de recherche.
Dans la susdite rubrique, tu trouveras ce que tu cherches :
http://dev.mysql.com/doc/refman/5.0/fr/date-and-time-functions.html
Etonnant, non ?
Marsh Posté le 18-06-2007 à 11:20:59
Bonjour, j'ai un tri bête et méchant à faire sur une base MySQL.
Du peu dont je me souviens de mes cours de SQL, les trucs avec les dates et heures, ça a toujours été relou.
Et je confirme ^^
En fait, j'ai une base qui contient plein de trucs, dont des dates/heures qui gère la gestion des interventions sur des applications là où je bosse.
Selon la gravité de la panne, l'utilisateur renseigne un champ "Gravité de la panne" et selon cette gravité, on se doit de résoudre le problème dans les 4 heures (gravité = 1), dans la journée (gravité = 2), dans les 3 jours (gravité = 3), etc...
Quand une ligne est créée dans la table, elle prend la date du moment de la création (date_emission)
Donc, si je veux voir où en est le traitement des incidents, je peux bêtement regarder la zoulie page intranet ou tous les incidents (et d'autres trucs) sont répertoriés.
Le problème est que des fois, y a TROP de trucs. Et surtout qu'il y a des trucs prioritaires, et d'autres moins.
Donc, on y voit pas grand chose.
Le but de ma requête est donc de sortir de cette table tous les incidents de gravité 1 (le plus urgent) et dont la date d'émission est supérieure à 4h (Là, où on se fait taper sur les doigts).
J'ai potassé les milliards de fonctions sur les dates et heures, mais j'arrive pas à trouver ce que je veux. Soit ca gère que les DATE, soit que les TIME, soit (apparemment) les 2 en même temps, mais je vois pas bien comment ça marche...
Je cherche donc ma requête finale qui devrait ressembler à la fin à
SELECT * FROM Ma_Table WHERE gravité = "1" AND (un tas d'autres trucs) AND Date_d'émission supérieure à 4 heures
Et pareillement, il me faudra aussi sortir sur une requête semblable:
- les événements de gravité 2 remontant à plus de 1 jour
- les événements de gravité 3 remontant à plus de 3 jours
- les événements de gravité 4 remontant à plus de 1 semaine
- etc....
Donc si quelqu'un pouvait m'indiquer comment comparer 2 date/time entre eux, un genre de WHERE Date_d'aujourd'hui - Date_emission > x heures (ou jours), ça serait sympatoche.