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

Langage SQL Discussion :

transformation de date en chaine


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 11
    Points : 3
    Points
    3
    Par défaut transformation de date en chaine
    bonjour à tous.

    lorsque je fait un select current_date from...

    j'obtiens un 2009-07-27 que j'aimerai comparé au champ date de la table qui est lui de la forme 20090727

    Mes connaissances limité en gestion de chaines de caractère en SQL ne me permettent pas une telle prouesse. Pourriez vous m'aider.

    merci.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Si la colonne date de ta table est déclarée en type date, la comparaison pourra se faire quand même. Le format de la date n'est qu'une notion d'affichage.

  3. #3
    Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    j'ai ça dans mes conditions

    Where table.champ < current_date

    et il me met comme erreur "comparision operator < operand not compatible"...
    voila tout ce que je peux dire.

    Merci en tout cas de ta vélocité de réponse.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Quel est ton SGBD?

  5. #5
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 103
    Points : 28 394
    Points
    28 394
    Par défaut
    Quel est le type de la colonne qui contient ta date ?

  6. #6
    Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    aucune idée...

    AS400 ça va comme réponse . je ne crois pas... je ne peux pas en dire plus. c'est peut etre l'ERP qui fait SGBD mais c'est un truc assez vieux. pour dire ils appellent ça des fichiers et pas des tables...

    mais ça marche en grande partie pareil.

    merci

  7. #7
    Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Le type de ma colonne c'est un nombre à 8 chiffre dont 0 décimales.

    P(8,0) c'est écrit.

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Tu peux pas comparer un nombre à une date, il faut donc convertir ton nombre en date.
    Si j'en crois ce lien, tu peux essayer avec la fonction date, assez contraignante vu qu'il faut lui présenter la chaine de caractère sous la forme yyyy-mm-dd.
    Ca donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Where concat(concat(concat(substr(table.champ,1,4),'-'),concat(substr(table.champ,5,2),'-')),substr(table.champ,7,2)) < current_date
    Tu peux toujours essayer to_date, ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE TO_DATE(table.champ, 'YYYYDDMM') < current_date

Discussions similaires

  1. Transformer des dates SAS en chaines
    Par tanaka59 dans le forum SAS Base
    Réponses: 1
    Dernier message: 10/09/2014, 17h41
  2. [Débutant] Verifier le format d'une date en chaine et la transformer
    Par shaun_the_sheep dans le forum C#
    Réponses: 4
    Dernier message: 19/11/2012, 18h23
  3. transformer une date en chaine
    Par niko8181 dans le forum Webi
    Réponses: 2
    Dernier message: 29/09/2009, 13h09
  4. Réponses: 3
    Dernier message: 20/09/2005, 09h01
  5. Transformation de date dans une procédure stockée
    Par bd0606 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 27/10/2003, 11h31

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