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

InterBase Discussion :

comment on fait pour passer la valeur 20051201 en 01.12.05


Sujet :

InterBase

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 23
    Points : 22
    Points
    22
    Par défaut comment on fait pour passer la valeur 20051201 en 01.12.05
    bonjour,

    voila je voudrais renseigner une donnée de ma table avec une donnée qui
    est déjà dans la table

    style j'ai le champ dat_exp qui est égale à 20051201 (c'est un entier)
    et je voudrait mettre à jours un autre champs style
    dat_exp_a_imp qui serait égal à '01.12.05'

    comment je peux faire

    merci d'avance

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Salut,

    Tu peux utiliser la fonction SUBSTR fournie dans la bibliothèque rfunc pour découper la chaîne dat_exp.
    Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    CREATE TABLE A_TMP (
           X INT,
           Y VARCHAR(10)
    );
     
    INSERT INTO A_TMP (X)
    VALUES (20051201);
    INSERT INTO A_TMP (X)
    VALUES (20050229);
     
    SELECT *
    FROM A_TMP;
     
    UPDATE A_TMP
    SET Y = SUBSTR(X, 1, 4) || '.' || SUBSTR(X, 5, 6) || '.' || SUBSTR(X, 7, 8);
    Remarque : j'ai supposé que dat_exp_a_imp est de type VARCHAR(10) car il se peut que tu rencontres des problèmes de comptabilité de valeurs si cette colonne est de type DATE (ou similaire) et que dat_exp contient un entier qui ne correspond pas à une date valide (ex : 31/02/2005).
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 52
    Points : 58
    Points
    58
    Par défaut
    Et pourquoi ne pas déclarer tes champs directement en DATE ou TIMESTAMP ?

    Henri
    Henri Gourvest
    http://www.progdigy.com

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 23
    Points : 22
    Points
    22
    Par défaut
    bonjour,

    je viens d'essayer ta solution Magnus mais ça n'as pas l'air de
    fonctionner je me demande en faite si mon interbase à bien
    la fonction SUBSTR() - je suis sur interbase 7.5
    sinon pour répondre à Henri c'est vrai que ça aurai été mieux
    d'avoir directement un champs DATE ou TIMESTAMP mais
    dans l'appli que j'utilise c'est pas comme ca

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Par défaut la fonction SUBSTR n'existe probablement pas selon ta version d'interbase (pour la 7.5 je ne sais pas mais pour la 6.0 elle n'existe pas) et dans ce cas il faut très certainement que tu télécharges et que tu installes la bibliothèque rfunc comme je te le disais dans mon post plus haut.

    PS : j'ai testé les requêtes de mon post et elles fonctionnent et effectuent le traitement que tu demandes
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  6. #6
    Membre actif Avatar de TMuet
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Septembre 2003
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 225
    Points : 288
    Points
    288
    Par défaut
    Il reste encore la possibilité d'implémenter une UDF.
    Ce qui sera beaucoup plus performant et pratique.

  7. #7
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 23
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par TMuet
    Il reste encore la possibilité d'implémenter une UDF.
    Ce qui sera beaucoup plus performant et pratique.
    c'est quoi une UDF? et comment on fait pour implanter la bibliothèque rfunc()
    dans IB? (je suis novice dans les base de données)

  8. #8
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    fais une recherche avancée sur le forum interbase (notamment) avec les termes UDF ou rfunc et tu comprendras tout ce qu'il faut savoir sur les User Define Functions (ie U.D.F.)
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

Discussions similaires

  1. Réponses: 5
    Dernier message: 07/04/2009, 19h00
  2. comment on fait pour ne pas raffraichir la page apres l'alerte
    Par nebil dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/08/2006, 18h55
  3. Comment vous faites pour gérer votre temps?
    Par implosion dans le forum Emploi
    Réponses: 12
    Dernier message: 10/01/2006, 18h31
  4. [Perf]comment on fait pour augmenter la RAM allouée?
    Par nico2280 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 08/11/2005, 17h55
  5. Réponses: 4
    Dernier message: 28/03/2005, 19h42

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