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

SQLite Discussion :

Des string qui se calculent tout seuls ?


Sujet :

SQLite

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Janvier 2010
    Messages : 21
    Points : 18
    Points
    18
    Par défaut Des string qui se calculent tout seuls ?
    Bonjour.
    Donc voilà le problème que je viens de rencontrer, enfaite je souhaite enregistrer des dates dans ma table suivant ce format " yyyy-mm-dd "
    pour une raison particulière mon champs est un varchar(2), sauf que sqlite me fait le calcul ?!!;je vous donne un exemple ce sera plus claire:

    Mon programme me renvoie ceci :
    string date = "2010-04-10" ;

    je l'insert dans ma table sans problème, et quand je regarde ce qui a été enregistré, j'ai dans mon champs date => "1996"

    (2010-4-10 = 1996)

    J e ne comprend pas pourquoi ? si quelqu'un peu m'expliquer....
    Merci d'avance.

  2. #2
    Membre actif

    Inscrit en
    Décembre 2004
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 169
    Points : 225
    Points
    225
    Par défaut
    Bonjour,

    SQLite n'a pas de type date, il gère des entier, décimaux, textes ou blobs. Une colonne varchar(2) est comprise comme étant de type text.

    Le problème vient donc de l'insert. Par exemple, si tu construits ta requête ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sprintf("insert into matable (date) values (%s);", date)
    (ou quelque chose qui ressemble à ce code)

    Alors la requête finale exécutée dans SQLite sera :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into matable (date) values (2010-4-10);
    D'où le résultat 1996.

    Ton champ date doit absolument être encadré par des " ou des ' dans ta requête.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into matable (date) values ("2010-4-10");
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into matable (date) values ('2010-4-10');
    C'est ça ?

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Janvier 2010
    Messages : 21
    Points : 18
    Points
    18
    Par défaut
    Je suis vraiment trop *** ! lol, merci je viens de me rendre compte de mon erreur, au départ ma date était du type date et je l'ai mis en varchar par la suite et je n'ai pas modifié ma requête SQL, donc en effet j'avais oublié les ' ' dans mon insert !

    merci beaucoup !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Le MIT crée des robots qui s'assemblent tout seuls
    Par Stéphane le calme dans le forum Actualités
    Réponses: 14
    Dernier message: 06/11/2013, 18h40
  2. Des fenêtres qui s'ouvrent toutes seules
    Par larimoise dans le forum Sécurité
    Réponses: 15
    Dernier message: 27/02/2007, 17h31
  3. Réponses: 15
    Dernier message: 31/01/2007, 22h03
  4. Des requêtes qui s'effacent toutes seules
    Par Celia1303 dans le forum Access
    Réponses: 2
    Dernier message: 16/12/2005, 15h19
  5. Des "=" qui se mettent tout seuls dans une TLisBox
    Par [Silk] dans le forum Langage
    Réponses: 2
    Dernier message: 11/11/2005, 12h35

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