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 :

[DateTime SQL Server 2005]


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2002
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2002
    Messages : 52
    Points : 44
    Points
    44
    Par défaut [DateTime SQL Server 2005]
    Bonjour,

    Je tiens tout d'abord à m'excuser si mon problème ne se situe pas au bon endroit.

    J'utilise un site asp qui transmet des dates au format jj//mm/yyyy dans la base sql server 2005 le stockage se fait d'une manière que je ne parviens pas à comprendre.

    Je m'explique si je transmet : 06/03/2009 alors j'ai dans la base via l'outil SQL Server Management 2005 : 2009-06-03 00:00:00.
    Parcontre si je transmet le 31/03/2009 alors j'ai en base 2009-03-31 00:00:00.
    Donc pas le même format.

    Est-ce un problème d'affichage ou est-ce bien ainsi que cela est codé en base et par conséquent cela me pose un problème pour les requêtes sur les dates.

    Quelqu'un peut-il me renseigner ?

    Merci d'avance.

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Le type de données DATETIME stocke des dates sous la forme de deux entiers de 4 octets chacun, l'un pour le jour, l'autre pour l'heure.
    Ce que vous en voyez n'en est qu'une représentation.

    Quand vous transmettez une date à SQL Server, suivant l'application, le driver et les paramètres régionaux de la machine hébergeant l'instance SQL Server, et suivant l'option DATEFORMAT ou LANGUAGE de l'instance, vous pouvez obtenir des représentations d'une date qui sont tout à fait différentes.

    Pour savoir quel langage utilise votre instance SQL Server, exécutez :

    Vous pouvez voir la représentation des dates dans la documentation de la fonction CONVERT : vous y verrez par exemple que le format usité pour une date en français est 103...

    @++

  3. #3
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2002
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2002
    Messages : 52
    Points : 44
    Points
    44
    Par défaut
    Merci pour la réponse,

    Le language est à "us_english".
    Ce que je comprends de tes explications c'est que mon problème via SQL Server Management 2005 au niveau des dates que l'éditeur affiche à savoir
    2009-03-31 pour le 31 mars 2009 et 2009-06-03 n'est qu'un problème d'affichage.

    Par conséquent lorsque j'interrogerais la bd sur le champ date avec la date au 07 mars 2009, j'aurais bien mes enregistrements ?

    Merci

  4. #4
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Par conséquent lorsque j'interrogerais la bd sur le champ date avec la date au 07 mars 2009, j'aurais bien mes enregistrements ?
    Comme votre instance est en anglais, vous devrez donc inverser le mois et le jour par rapport à une date française, et donc utiliser pour le 07 mars 2009 :

    03/07/2009
    Si vous avez peur de vous tromper entre les dates, utilisez :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DECLARE @date DATETIME
    SELECT @date = CONVERT(DATETIME, '07/03/2009', 103)
    @++

  5. #5
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2002
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2002
    Messages : 52
    Points : 44
    Points
    44
    Par défaut
    Désolé de revenir à la charge, mais quand j'insère les dates 05/03/2009 et 31/03/2009 en base j'ai 2009-05-03 et 2009-03-31 et quand je fais select avec ma date au select * from maTable where maDate < '31-03-2009' je ne ramène rien.

    Pour info mon serveur est défini us-english mais mon user de connexion à pour
    langage par défaut french afin de prendre dmy comme dateformat.

    N'y a-t-il pas un moyen de configurer dans le DSN le paramètre dateformat ?

    Merci d'avance.

  6. #6
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Pour info mon serveur est défini us-english mais mon user de connexion à pour
    langage par défaut french afin de prendre dmy comme dateformat.
    C'est là qu'est le problème.
    Ne pouvez-vous pas gérer cela dans votre application ?

    @++

  7. #7
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2002
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2002
    Messages : 52
    Points : 44
    Points
    44
    Par défaut
    J'ai essayé de le faire en écrivant une procédure stockée qui fait et en y faisant appel des le démarrage de l'application asp. Mais cela ne fonctionne tout de même pas.

    Pour info c'est une application asp qui comporte un nombre de fichiers très conséquent. Elle a été écrite au départ pour SQL Server 7 et a été migrée très récemment sur SQL Server 2005. Les seuls problèmes que nous avons rencontrés jusqu'alors étaient des problèmes liées aux requêtes ANSI.

    Merci

Discussions similaires

  1. Sql server 2005 - 2012 Datetime Format
    Par siva27 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 10/01/2014, 15h33
  2. Changer le format DateTime sous SQL-Server 2005
    Par merovengian dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 26/12/2011, 11h03
  3. [ZF 1.9] Conversion datetime SQL Server 2005
    Par KeKeMaN dans le forum Zend_Db
    Réponses: 4
    Dernier message: 30/03/2010, 14h17
  4. Conversion Date Access en Datetime SQL Server 2005
    Par Eratosten dans le forum Langage SQL
    Réponses: 1
    Dernier message: 27/05/2008, 14h00
  5. Convertir une date au format excel en datetime SQL server
    Par ALLB dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 20/07/2004, 11h28

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