IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

Comparaison de dates


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    C_C
    C_C est déconnecté
    Membre confirmé
    Inscrit en
    Novembre 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 139
    Par défaut Comparaison de dates
    Salut,

    Je veux comparer deux dates dans une clause WHERE mais toutes les façons que j'ai essaié me donnent une erreur.
    Ma colonne date a le format 'jour-mois-année'.
    Exemple:Le format de l'autre date à comparer peut être n'importe lequel puisque je l'envois du code c#.
    Exemple de la requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select * from table where colDate >= '20-Sep-07'
    Quelqu'un peut me suggérer une façon de faire car j'ai essayé avec des to_date(), to_char() et rien de fonctionne.

    Merci d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    une date n'a pas de format dans la base.
    C'est juste pour l'affichage qu'il y a un formatage.
    Et pour comparer date1 avec date 2, on fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select 1 from dual where date1 < date2 ;

  3. #3
    Invité
    Invité(e)
    Par défaut
    '20-Sep-07' n'est pas une date mais une chaine de caractères...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM TABLE WHERE colDate >= to_date('20-Sept.-07','DD-Mon-YY');
    Pour ne pas s'embêter avec le formatage des mois et le pb de l'an 2000, il vaut mieux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM TABLE WHERE colDate >= to_date('20-09-2007','DD-MM-YYYY');

  4. #4
    C_C
    C_C est déconnecté
    Membre confirmé
    Inscrit en
    Novembre 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 139
    Par défaut
    J'ai oublié un petit détail qui me semble important.
    La colonne date dans ma table n'est pas du Date mais du type Varchar et avec cette solution j'ai l'erreur suivante: "not a valid month".

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par C_C Voir le message
    J'ai oublié un petit détail qui me semble important.
    La colonne date dans ma table n'est pas du Date mais du type Varchar et avec cette solution j'ai l'erreur suivante: "not a valid month".
    Pas bien d'avoir une date dans un varchar... Perso, je modifierais la colonne pour la passer en type date.

    Et oui, sep n'est pas un mois pour oracle !
    À toi de faire des modifications pour passer la chaine Sep à Sept. ou à september ou septembre, ça dépend des paramètres de ta base.

  6. #6
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    Citation Envoyé par Jerome_Mtl Voir le message
    ça dépend des paramètres de ta base.
    et de la version...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Connected to:
    Oracle8i Enterprise Edition Release 8.1.7.4.0 - Production
    With the Partitioning option
    JServer Release 8.1.7.4.0 - Production
     
    SQL> select to_char(date '2000-09-01','Mon','NLS_DATE_LANGUAGE=french')
      from dual;
     
    TO_
    ---
    Sep
     
    SQL> Disconnected from Oracle8i Enterprise Edition Release 8.1.7.4.0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Connected to:
    Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production
    With the Partitioning option
    JServer Release 9.2.0.6.0 - Production
     
    SQL> select to_char(date '2000-09-01','Mon','NLS_DATE_LANGUAGE=french') 
      from dual;
     
    TO_
    ---
    Sep
     
    SQL> Disconnected from Oracle9i Enterprise Edition Release 9.2.0.6.0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit Production
    With the Partitioning, OLAP and Data Mining options
     
    SQL> select to_char(date '2000-09-01','Mon','NLS_DATE_LANGUAGE=french') 
      from dual;
     
    TO_CH
    -----
    Sept.

  7. #7
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT * FROM TABLE WHERE 
      to_date(colDate,'DD-MON-RR','NLS_DATE_LANGUAGE=american') >= 
        to_date('20-Sep-07','DD-MON-RR','NLS_DATE_LANGUAGE=american')
    des dates sans le siècles, aïe aïe aïe

Discussions similaires

  1. comparaison de dates javascript
    Par SpaceFrog dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/07/2005, 08h45
  2. comparaison de dates
    Par pmithrandir dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/06/2005, 16h12
  3. comparaison de date
    Par nickoshiba dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 15/03/2005, 15h48
  4. Comparaison de dates
    Par Tapioca dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 16/06/2004, 15h55
  5. Problème de comparaison de dates
    Par MiJack dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/03/2004, 21h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo