Trier valeur par date

Fermé
ppl - 19 févr. 2013 à 17:49
goldray Messages postés 82 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 1 juin 2014 - 6 mars 2013 à 20:19
Bonjour,

j'ai des données dans une table avec une colonne date au format 2013-02-02 19:42:46 quand on liste le contenue de la date j'aimerais trier la date comme par exemple la dernière heure ou depuis 24 heures

20 réponses

goldray Messages postés 82 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 1 juin 2014 8
Modifié par goldray le 19/02/2013 à 19:51
Bonsoir,
si vous voulez faire un tri selon l'heure ,vous devez faire ça :
select * from nom_table
order by extract(hour from nom_colonne);
1
merci mais cela affiche tous les enregistrements et pas uniquement ceux qui date de moins de 1 heure

merci
0
goldray Messages postés 82 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 1 juin 2014 8
20 févr. 2013 à 19:00
Bonsoir,
désolé j'ai pas compris qu'est ce que vous voulez faire ,pouvez vous m'expliquer ?
0
j'ai une table avec une colonne de date au format 2013-02-20 19:07:56

et je veux afficher uniquement le contenu de la table de moins d'une heure en se fiant à l'heure contenue dans ma colonne date et heure
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
goldray Messages postés 82 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 1 juin 2014 8
20 févr. 2013 à 19:39
affichage des lignes de moins d'une heure ?
c'est pas clair ,désolé
est ce que vous pouvez nous fournir un exemple
0
dams mon application quand on ajoute un article cela rajoute une ligne dans la table avec plusieurs colonnes comme "nom" et "date_ajout" et je veux afficher uniquement les articles ajoutés il y a moins d'une heure
0
goldray Messages postés 82 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 1 juin 2014 8
Modifié par goldray le 21/02/2013 à 19:42
Bonsoir,
Vous devez faire un calcul en fonction (heure,minutes ..) juste une idée :
select * from nom_table
where extract(hour from nom_colonne) =(select to_char(sysdate,'HH24') from dual) ;


=>cette requête permet d'afficher toutes lignes dont l'heure est égale à l'heure de système
0
select * from article where extract(hour from date_ajout) =(select to_char(sysdate,'HH24') from dual) ;
FUNCTION article_live.to_char does not exist
0
goldray Messages postés 82 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 1 juin 2014 8
22 févr. 2013 à 12:46
Bonsoir,
j'ai vérifiée la requête ,elle marche chez moi !!
quelle est le type de la colonne date_ajout ?
0
type varchar text
0
goldray Messages postés 82 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 1 juin 2014 8
22 févr. 2013 à 21:48
Bonsoir,
donc le problème est au niveau du type de champ date_ajout ,vous devez modifier le type de ce champ ,je vous propose d'utiliser "TIMESTAMP" ,si non si vous voulez garder le type "varchar" vous devez extraire l'heure depuis le champ date_ajout en utilisant la fonction substr
0
comment fait-on pour utiliser substr
0
goldray Messages postés 82 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 1 juin 2014 8
24 févr. 2013 à 21:30
substr c'est fonction qui permet d'extraire des caractères depuis une chaine.
la syntaxe est le suivant:
substr( nom_chaine, position,longueur )

exemple:
substr('TechOnTheNet', 1, 4)
=>retourne:Tech
0
par exemple 2013-02-20 19:07:5

si je veux extraire l'heure

substr( date_heure, 4,2 )

c'est ça non ?
0
bonjour et merci de votre aide,

j'ai mit ma colonne en timestamp

toujours pareil select * from article where extract(hour from date_ajout) =(select to_char(sysdate,'HH24') from dual) ;
FUNCTION article_live.to_char does not exist
0
goldray Messages postés 82 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 1 juin 2014 8
25 févr. 2013 à 19:27
Bonsoir,
pour la fonction substr(date_ajout,12,2)
j'ai bien vérifié le cas où la colonne est de type timestanp ,elle marche bien chez moi ,j'avais écrit cette requête et me renvoie le résultat:
select * from nom_table
where extract(hour from nom_colonne) =(select to_char(sysdate,'HH24') from dual) ;
0
je tourne sous ubuntu precise (12.04)
0
goldray Messages postés 82 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 1 juin 2014 8
2 mars 2013 à 23:46
Bonsoir,
Désolé pour le retard,je crois que le problème lié à la version de SQL.
0
c'est pas grave je me suis débrouiller autrement : enregistre l'heure dans une colonne puis afficher où l'heure de la colonne est égal à l'heure du système mais ç a ne fais pas toujours une heure car de 18:59 à 19:00 il y a que une minute
0
goldray Messages postés 82 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 1 juin 2014 8
6 mars 2013 à 20:19
Bonsoir,
je vous propose de visiter ce forum et j'espère que vous auriez la solution pour vos soucis ..
https://forums.oracle.com/forums/forum.jspa?forumID=82&start=0

//site officiel d'oracle

bonne chance
0