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 :

[SQL2005] [TSQL] Valeur retournée par CONVERT(datetime, char)


Sujet :

MS SQL Server

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [SQL2005] [TSQL] Valeur retournée par CONVERT(datetime, char)
    Bonjour à tous,

    Je souhaiterais avoir l'avis de personnes sans doutes plus éclairées que moi sur les fonctions du TSQL notamment au sujet de la conversion de données en datetime.

    Je viens d'observer ceci : j'ai deux tables A et B

    A contient des dates dans un champ DateCreate de type char(10) ;
    B contient des dates dans un champ DateCreate de type datetime.

    Pour A.Id = 1, j'ai A.DateCreate='24/02/2005'

    J'effectue une requete :

    A la fonction CONVERT, je ne spécifie pas, volontairement, le style du format de date.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE B
    SET B.DateCreate = CONVERT(datetime, A.DateCreate)
    FROM B,A
    WHERE B.Id = A.Id AND A.Id = 1
    Aucun soucis, ma date dans la table B est mise à jour et j'obtiens ceci :
    pour B.Id = 1, j'obtiens '24/02/2005 00:00:00'

    Par contre, lorsque je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT CONVERT(datetime, DateCreate)
    FROM A
    WHERE Id = 1
    J'obtiens une date sous cette forme '2005-02-24 00:00:00.000'.

    Je suis incapable d'expliquer cette différence entre les deux formats obtenus.

    Si quelqu'un aurait une explication, je lui suis tout ouïe

    Bonne continuation à vous, et merci d'avance !

    Stéphane

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 850
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 850
    Points : 52 984
    Points
    52 984
    Billets dans le blog
    6
    Par défaut
    la notion de format de date n'exste pas en SQL. Une date est un type DATE. Un opojnt c'est tout. Le reste c'est du niveau des IHM client. DOnc ni de SQL ni du SGBDR !
    Lisez ceci :
    http://sqlpro.developpez.com/cours/sqlaz/erreurs/#L7
    http://baptiste-wicht.developpez.com...-sql/datetime/

    A +

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci bien pour ta réponse

    J'ai regardé les ressources que tu m'as indiqué. Encore merci !

    Cela dit, un point m'échappe totalement...

    (je précise que SQL Server ou les SGBDR en général ne sont en rien ma spécialité, loin de là)

    Tu m'écrive que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    la notion de format de date n'exste pas en SQL. Une date est un type DATE. Un opojnt c'est tout. Le reste c'est du niveau des IHM client. DOnc ni de SQL ni du SGBDR
    Alors que je peux lire ceci à cette adresse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Mais sur quel format la conversion va t-elle opérer ?
     
    La plupart des SGBDR reposent sur le format normatif ISO de date qui spécifie :
    AAAA-MM-JJ hh:mm:ss.xxx
    Enfin, tout ça n'est pas important du tout.

    C'est juste que je ne comprend pas comment un fonction utilisée dans deux contextes différents mais en lui passant exactement les mêmes paramètres peut retourner deux valeurs différentes.

    Je souhaitais avoir peut-être une explication, plus par curiosité qu'autre chose.


    Stéphane

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Erreur de ma part... trompé de bouton

Discussions similaires

  1. comment comparer les valeurs retournés par DBGrid
    Par Ice-tea dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/06/2006, 14h42
  2. Réponses: 1
    Dernier message: 22/05/2006, 11h27
  3. [SQL] Valeur retournée par une requête...
    Par Empty_body dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 04/01/2006, 22h13
  4. VB6 --> Valeurs retournées par une comboBox
    Par the java lover dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 13/12/2005, 16h26
  5. valeur retournée par un .js
    Par astrofiles dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/08/2005, 10h20

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