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

Développement SQL Server Discussion :

Conversion varchar to datetime [2012]


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 212
    Points : 71
    Points
    71
    Par défaut Conversion varchar to datetime
    Bonjour,
    J'ai détecté quelque chose d'étrange :

    J'ai cette chaine à l'origine : '2014-08-12 22:24:26,658'
    Je veux la convertir en datetime.
    J'utilise la fonction convert . Mais tout d'abord je remplace le ',' par un '.' car sinon ça ne fonctionne pas avec le 121.
    Le résultat me retourne parfois une différence de 0.001 s .
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CONVERT (datetime,REPLACE('2014-08-12 22:24:26,658',',','.'),121)
    Résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    2014-08-12 22:24:26.657
    Pourquoi?

  2. #2
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Hello,

    Je ne suis pas sûr à 100% mais si mes souvenirs sont bon, le type datetime à une précision à 3 millisecondes.

    Du coup, quand tu lui passes 658 millisecondes, il prend la valeur la plus proche de la précision autorisée par ce type de donnée qui est 657.

    658/3 = 219,33333....
    657/3 = 219
    Kropernic

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 212
    Points : 71
    Points
    71
    Par défaut
    merci pour l'info , ça semble plausible

  4. #4
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2009
    Messages : 623
    Points : 1 049
    Points
    1 049
    Par défaut
    Si tu as besoin d'une meilleur précision, regarde du coté du datetime2.
    Blog Perso | Kankuru (logiciel gratuit pour SQL Server)

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 212
    Points : 71
    Points
    71
    Par défaut
    En effet ça fonctionne en datetime2. Merci pour l'info.

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

Discussions similaires

  1. Erreur de conversion de type, varchar vers datetime
    Par Marc_3 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/06/2012, 21h46
  2. Conversion Varchar en datetime
    Par halloumiali dans le forum Requêtes
    Réponses: 19
    Dernier message: 06/04/2012, 16h43
  3. Réponses: 3
    Dernier message: 15/10/2010, 05h02
  4. Conversion VARCHAR vers INT
    Par Slash dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 17/05/2005, 10h43
  5. varchar en datetime
    Par divableue dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/10/2003, 15h45

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