Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
806 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Comparer un datetime avec un date (sans l'heure)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comparer un datetime avec un date (sans l'heure)

n°1322573
nero27
Posté le 10-03-2006 à 11:16:29  profilanswer
 

Bonjour à tous !
 
Voilà, j'ai un historique avec des datetime et je voudrais afficher toutes les actions de la journée, mais je ne vois pas comment faire :/
J'ai testé avec curdate(), mais ça ne fonctionne pas.
 
Voici ce que j'ai tenté :

Code :
  1. SELECT * FROM `action_historique` where `date`=curdate() and `idc`=12345678 //ne retourne rien
  2. SELECT * FROM `action_historique where `date` like "2006-03-10%" //fonctionne mais n'est vraiment pas optimal, c'est évident


 
Auriez-vous une solution à me donner ?


Message édité par nero27 le 10-03-2006 à 11:16:58
mood
Publicité
Posté le 10-03-2006 à 11:16:29  profilanswer
 

n°1322600
jeoff
Posté le 10-03-2006 à 11:35:07  profilanswer
 

SGBD ?
 
Sous mysql tu peux spécifier un masque avec DATE_FORMAT(date,'%Y-%m-%d') par exemple
 
SELECT *
FROM `action_historique`
WHERE DATE_FORMAT( date, '%Y-%m-%d' ) = "2006-03-10"

Message cité 1 fois
Message édité par jeoff le 10-03-2006 à 11:38:31
n°1322608
nero27
Posté le 10-03-2006 à 11:41:17  profilanswer
 

jeoff a écrit :

SGBD ?
 
Sous mysql tu peux spécifier un masque avec DATE_FORMAT(date,'%Y-%m-%d') par exemple
 
SELECT *
FROM `action_historique`
WHERE DATE_FORMAT( date, '%Y-%m-%d' ) = "2006-03-10"


C'est du MySQL, en effet, j'ai oublié de préciser :ange:  
 
Je pense que c'est exactement ce que je cherche, je vais tester ça de suite :jap:
 
Sinon, niveau ressources, c'est gourmand ou pas ?

n°1322613
jeoff
Posté le 10-03-2006 à 11:47:28  profilanswer
 

nero27 a écrit :


Sinon, niveau ressources, c'est gourmand ou pas ?


 
Je pense pas que ce soit pire que 'like', revient poster les résultats du bench like vs DATE_FORMAT histoire qu'on en profite :D

n°1322636
nero27
Posté le 10-03-2006 à 11:58:32  profilanswer
 

Alors, je viens de tester et ça fonctionne : alors, avec le like, ça nous donne un joli lock de la table et avec ta solution, ça nous donne entre 3 et 6 secondes (mais le serveur est en surcharge).

n°1322830
Arjuna
Aircraft Ident.: F-MBSD
Posté le 10-03-2006 à 15:39:13  profilanswer
 

disons que la fonction de CAST de "float" vers "int" en mysql soit "cint()"
 
alors essaie :
 
where cint(date) = cint(curdate())
 
après tout, une date, c'est simplement un float pour un PC, dont la partie entière représente la date, et la fraction, l'heure. la plupart des langages et SGBD acceptent de faire le goret avec des cast dessus. et clairement, tu ne trouveras rien de plus performant que de faire un cast d'un float vers un int pour comparer des dates ;)


Message édité par Arjuna le 10-03-2006 à 15:39:57

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Comparer un datetime avec un date (sans l'heure)

 

Sujets relatifs
Suppression de fichiers en fonction d'une date.reccuperer l'heure et la date en cours(du jour) dans un trigger ?
[C#] Datetime.AddYear Addminute etc. marchent pasComparer les valeurs de deux tableaux
Prb recuperation de DateDate system
Outils pour la date et l heureAccess: requete mise a jour date avec ajout de jours
Plus de sujets relatifs à : Comparer un datetime avec un date (sans l'heure)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR