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

MS SQL Server Discussion :

nvarchar to smalldatetime


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 26
    Par défaut nvarchar to smalldatetime
    Bonjour,

    J'ai une table avec une colonne de type nvarchar
    qui contient des dates au format : jjmmaaaa et jj/mm/aaaa

    et il n y a pas de "null" autorisé dans cette colonne.

    Je voudrais convertir ma colonne en smalldatetime

    J'ai une erreur lorsque j'essaye de convertir la colonne
    "- Impossible de modifier la table.
    Une erreur de dépassement arithmétique s'est produite lors de la conversion de expression en type de données smalldatetime.
    L'instruction a été arrêtée."

    Comment puis-je faire pour résoudre mon pb ?
    Got

  2. #2
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 36
    Par défaut
    Bonjours;

    le problème est que 'jjmmaaaa' ne contient pas des '/'

    alors voilà comment convertir:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    pour le format 'jj/mm/aaaa'
     
    convert(smalldatetime,'jj/mm/aaaa')
     
    et pour le format 'jjmmaaaa'
     
    convert(smalldatetime,substring('jjmmaaaa',1,2)+'/'+substring('jjmmaaaa',3,2)+'/'+substring('jjmmaaaa',5,4))

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 26
    Par défaut
    Tu n'aurais pas une idee de requete qui pourrait parcourir mes lignes et remplacer celles ou il y a jjmmaaaa par jj/mm/aaaa ?

    Je sais comment recuperer toutes mes lignes avec le format "erroné" mais apres je ne c pas encore comment faire.

    ...
    WHERE date not like '%/%'
    ...

  4. #4
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 36
    Par défaut
    tu peut tester la longueur de la chaine en utilisant

    la fonction LEN qui retourne un entier

    pour ton cas LEN('jjmmaaaa')=8 en LEN('jj/mm/aaaa')=10

    alors t'a un critère pour tester tes champs

  5. #5
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 36
    Par défaut
    La requete de la mis à jour:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
     
    update [MaTable] set [MaColonne]=convert(smalldatetime, substring([MaColonne],1,2)+'/'+substring([MaColonne],3,2)+'/'+substring([MaColonne],5,4))
     
    where [CRITERE]

  6. #6
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 36
    Par défaut
    J'ai oublier de citer que [MaColonne] à gauche de '=' est différente de

    [MaColonne] de la droite piusque la première est de type smalldatetime

    et la deuxième de type nvarchar

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

Discussions similaires

  1. problème avec un smalldatetime
    Par mbibim63 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/08/2005, 10h46
  2. Clef primaire en nvarchar
    Par Mouse dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 07/04/2005, 15h50
  3. convertir varchar en smalldatetime
    Par georgeabitbol dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 21/07/2004, 15h22
  4. [C#] Différence entre VARCHAR et NVARCHAR
    Par austin49 dans le forum Accès aux données
    Réponses: 4
    Dernier message: 20/05/2004, 13h02
  5. CAST DATETIME ----> SMALLDATETIME
    Par Guizz dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/06/2003, 12h07

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