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 :

Problème de conversion de date


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    432
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 432
    Par défaut Problème de conversion de date
    Bonjour,

    Je suis désolé mon sujet marche sur 3 thèmes en même temps j'espère être dans la bonne section de forum.

    J'explique rapidement, je suis en train de faire un script qui prend le contenu d'une table mssql, pour le copier dans une autre table MySQL cette fois, et le script est fais en PHP.

    Pour faire simple des données sont enregistré dans une table, dont un champ datetime au format américain. Pour copier le contenu je fais en PHP un while, je construis ma requête, et je l'affiche pour voir si j’obtiens bien se que je désire.
    Et la surprise ma date est au format français. J'ai tout de meme continué afin de voir si ce n'étais pas un tour de mon navigateur. Le champ date de mon insertion se retrouve a 0000 mais format américain. C'est donc qu'il n'a pas comprit. J'ai testé avec d'autre navigateur, c'est le même cirque.

    Quelqu'un a une idée du pourquoi?

    J’espère avoir été assez clair.

  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 010
    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 010
    Billets dans le blog
    6
    Par défaut
    Un format de date cela n'existe pas dans un SGBDR. Une date est un type de données. A lire : http://sqlpro.developpez.com/cours/sqlaz/erreurs/#L7

    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 éclairé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    432
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 432
    Par défaut
    Cela viendrai donc de mon Sql server?
    Si c'est le cas comment modifie t'il le flag DATEFORMAT?

    Si je fait cela ne va t'il pas y avoir des conséquence sur le autres table?
    ne peut t'on pas simplement l’empêcher de faire la conversion?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    432
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 432
    Par défaut
    Je raconte des annerie , mon format de base est ceci
    "2012-04-13 14:03:06.450"
    celui que je récupère est celui la
    "Apr 13 2012 1:55PM"

    enfin je suppose que le problème est bien, sql server, j'ai fait d'autre test avec des navigateur ou des VM avec d'autre wamp ou easyphp, le résultat est le même.
    Le problème est que je ne sais pas quel impacte aura la modification du Server sql sur les autres traitement, cela peut être terrible.

    Je pense que je vais devoir prendre mes petites main et coder une fonction adapté?

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    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 010
    Billets dans le blog
    6
    Par défaut
    Vous ne comprenez toujours pas. Une date est un type date et n'a pas de format.... Vous pourrez donc toujours faire par exemple DateA = DateB pourvu que DateA et DateB soient des colonnes de type DATE (ou DATETIME) ou des variables de type DATE (ou DATETIME).

    Donc à un moment ou un autre vous transformez votre date en chaine de caractères et c'est là que vous merdez....

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT CAST(CURRENT_TIMESTAMP AS VARCHAR(38))
     
    SELECT CONVERT(CHAR(38), CURRENT_TIMESTAMP, 121)

    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/ * * * * *

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    432
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 432
    Par défaut
    Bonjour,
    Si je comprend bien
    "Apr 13 2012 1:55PM" serai donc une date, et si je vous comprend bien je peux faire des comparaison avec d'autre date, sql se débrouillera car il s'agit de date c'est bien cela?

    Alors si nous restons sur la même idée, j'ai donc un champs date a laquelle j'ajoute pour chaque enregistrement la date du jour, et quand je fait un simple SELECT je retrouve "Apr 13 2012 1:55PM" au lieu de "2012-04-13 14:03:06.450".

    Bon si je fait un INSERT d'un SELECT de ma table dans une table identique, mssql m'envoi sur les rose et me dis que le format date n'est pas bon. Ce sont ces dires. Dans mes deux requêtes il n'y a pas eu de transformation de ma date en string ou pas intentionnellement.

    j'ai plutôt l'impression que sql Server fait l’âne et change de lui même le format.

Discussions similaires

  1. problème de conversion de date
    Par thaundeadboss dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 11/06/2008, 07h07
  2. Problème de conversion de date en C#
    Par Xitog dans le forum Framework .NET
    Réponses: 9
    Dernier message: 10/09/2007, 14h11
  3. Problème de conversion de date
    Par loulou dans le forum Langage
    Réponses: 1
    Dernier message: 29/08/2007, 15h18
  4. [T-SQL] Problème de conversions de dates
    Par kooljy dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/06/2006, 14h19
  5. - [CAST ou CONVERT] Problème de conversion de date
    Par Boublou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/07/2004, 14h31

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