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 :

Format des dates


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut Format des dates
    Salut

    J'ai un petit soucis de format des dates. Je dois convertir un champs d'une table de Varchar(50) à Smalldatetime.

    J'ai fait le ménage pour n'avoir dans mon champ que des donnée de type jj/mm/aaaa.

    Mais je suis assez étonné des résultats de serveur et j'ai pratiqué un test comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    declare @datetest varchar(50)
    set @datetest = '22/09/2004'
     
    select convert(smalldatetime,@datetest,103)
    Et le résultat est assez particulier :
    2004-09-22 00:00:00
    Et mieux encore, lorsque je passe au style 101 :
    Serveur*: Msg 296, Niveau 16, État 3, Ligne 4
    La conversion du type de données CHAR en SMALLMONEY a donné une
    valeur hors des limites des valeurs monétaires.
    Est ce que vous avez une idée de l'endroit où je pourrais aller vérifier si mon serveur est en bonne configuration.
    Pour l'instant je sais qu'il tourne sur un Win2000 server SP4, c'est un SQL Server 2000, mais je trouve pas le SP.

    MErci pour votre aide.

  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
    22 002
    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 : 22 002
    Billets dans le blog
    6
    Par défaut
    Sujet traité au moins 2156451352135413651321321 sur ce forum...
    Un peu de recherche eut été bienvennue !

    Première lecture conseillée : http://sqlpro.developpez.com/cours/sqlaz/erreurs/#L7

    LE SEUL FORMAT PORTABLE de STRING VERS DATE EST LE FORMAT ISO COURT :
    AAAAMMJJ

    Si vous voulez un format exotique, il faut utiliser un flag pour spécifier l'ordre des parties de la date :
    SET DATEFORMAT ...
    ymd
    mdy
    dmy
    ydm
    ....

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Par défaut
    Citation Envoyé par zooffy
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    declare @datetest varchar(50)
    set @datetest = '22/09/2004'
     
    select convert(smalldatetime,@datetest,103)
    Et le résultat est assez particulier :
    2004-09-22 00:00:00
    que trouves-tu de particulier ?

    Tu demandes uin smalldatetime, il te renvoie un smalldatetime, c'est à dire une date et une heure.

    Au risque de se repéter, il est impossible de ne pas avoir les heures d'afficher quand les champs sont de type DATETIMEou SMALLDATETIME.

  4. #4
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci pour ces éclaircissements, même si je reste avec mon problème sur les bras.

    Alors, pour les recherches : j'en ai fait avant de poster et je n'ai pas trouvé de solution.

    Ensuite, qu'est ce que je trouve de particulier au résultat : simplement, lorsque l'on précise le style 103, on obtient une date au format français, avec l'année sur 4 plots et sans l'heure. En tout cas, lors de ma dernière mission c'est comme çà que çà marchait.
    Là je suis dans une autre boite et çà marche pas pareil. L'ennui est qu'ici il n'y a pas de DBA confirmé qui pourrait m'aider, disons que, alors que je suis dévelopeur ASP, je suis le plus "calé" en SQL Server.

    Donc, dans un premier temps, je cherche à savoir s'il n'y a pas une configuration serveur qui permet de gérer les dates facilement ou qui bloque quelque chose. Et dans un deuxième temps je cherche à changer le type de mon champ de Varchar(50) vers SmallDatetime sans qu'il me mette de message d'erreur.

    Merci pour votre aide

Discussions similaires

  1. Format des dates pour acces à une BD MS Access..
    Par hagler dans le forum Bases de données
    Réponses: 10
    Dernier message: 03/10/2005, 18h16
  2. [Debutant] Format des dates ?
    Par Invité dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/09/2005, 14h55
  3. [VBA] Pb de format des dates dans un état
    Par linda15975 dans le forum IHM
    Réponses: 45
    Dernier message: 21/06/2005, 14h49
  4. Format des dates
    Par cjacquel dans le forum MFC
    Réponses: 1
    Dernier message: 03/05/2005, 11h03
  5. [C#] Format des dates pour une ComboBox...
    Par frechy dans le forum Windows Forms
    Réponses: 5
    Dernier message: 07/01/2005, 17h08

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