Format DATE

Fermé
kadden Messages postés 248 Date d'inscription mardi 18 mai 2010 Statut Membre Dernière intervention 3 décembre 2021 - 15 juin 2010 à 18:46
 fiu - 22 juin 2010 à 01:58
Bonjour,

Je voulais vous demander comment trouver une date dans une table SQL,
j'utilise la requête suivante :
"SELECT * From table where ma_date = 08/06/1975"

pourtant sur une base de donnée MySql, ça marchait bien, mais le format du champ "ma_date" était TEXTE

Merci pour vôtre aide
A voir également:

7 réponses

Salut,

Peux-tu préciser le SGBD utilisé s'il te plait.
0
kadden Messages postés 248 Date d'inscription mardi 18 mai 2010 Statut Membre Dernière intervention 3 décembre 2021 9
15 juin 2010 à 21:07
Justement je ne connais pas tout à fait le SGBD,
mais je pense bien que c'est Oracle
0
WOAW !

comment ça je ne connais pas tout à fait le SGBD ?
Quel outil utilises-tu pour envoyer tes requêtes à ton SGBD ?
0
kadden Messages postés 248 Date d'inscription mardi 18 mai 2010 Statut Membre Dernière intervention 3 décembre 2021 9
16 juin 2010 à 13:58
Par un requetteur par exemple
et donc on ne pourra même pas voir le type de SGBD,

cela dit je pense que c'est du Oracle

Merci pour vôtre aide
0

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

Posez votre question
Salut

mais qu'est-ce qui te laisse penser que c'est de l'oracle, quels indices te poussent à croire ça ?

si c'est de l'oracle, la vue v$version devrait te renvoyer quelque chose
0
kadden Messages postés 248 Date d'inscription mardi 18 mai 2010 Statut Membre Dernière intervention 3 décembre 2021 9
21 juin 2010 à 19:38
Je ne sais pas comment taper une commande pour la version du SGBD,

mais j'ai taper une requête qui ne marche qu'avec ORACLE :

Select * from All_tables

Merci de me dire comment faire pour chercher une date dans une table Oracle
0
Salut

en passant: c'est pas l'existence de all_tables qui peut t'assurer que le sgbd est Oracle.

Si c'était de l'oracle, ta date dépendrait des paramètres de ta session. Et le plus simple a toujours été d'annoncer à Oralce le format de date désiré (juste après l'ouverture de session).
Une fois ce format annoncé, toutes les conversions de date (date->chaine ou chaine->date) implicites ou explicites se font par défaut avec ce format. Si, pour un cas particulier, on a besoin d'un autre format, on le précise lors de la conversion.

A. Juste après l'ouverture de session, on pourrait envoyer
ALTER SESSION SET NLS_DATE_FORMAT='dd/mm/yyyy';
nb: Ça c'est typiquement Oracle

B. Recherche de tous les dtButee < 1er juillet
SELECT * FROM table where dtButee < '01/07/2010';
c'est interprété par Oracle en
SELECT * FROM table where dtButee < to_date('01/07/2010');
nb: le format par défaut a été utilisé par to_date()

C. la même recherche avec un to_char() explicite utilisant le format par défaut
SELECT * FROM table WHERE to_char(dtButee) < '01/07/2010';
ne fonctionnera pas car le 02/06 ne serait pas inférieur au 01/07

Cbis. la même recherche avec un to_char() explicite citant le format à utiliser
SELECT * FROM table WHERE to_char(dtButee, 'yyyymmdd') < '20100701';

D. Recherche de tous les dtButee < aujourd'hui
SELECT * FROM table where dtButee < sysdate; -- comparaison date avec date

E. Offrir 2 points sur la moyenne aux elèves dont c'est l'anniversaire
UPDATE eleves
SET moyenne_generale = moyenne_generale + 2
WHERE to_char(dtNaissance, 'ddmm') = to_char(sysdate, 'ddmm');


F. Provoquer une erreur avec une requête ne respectant pas le format défini dans la session
SELECT * FROM table WHERE dtButee < '01/07/2010 13:30:00');
0