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 :

Export de date de SQL vers Excel - 2 jours de différence (?)


Sujet :

Développement SQL Server

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Chef de projet
    Inscrit en
    Août 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Transports

    Informations forums :
    Inscription : Août 2011
    Messages : 7
    Points : 8
    Points
    8
    Par défaut Export de date de SQL vers Excel - 2 jours de différence (?)
    Bonjour,

    Je souhaite exporter des horodatage à la millisecondes, depuis SQL-Server 2005 français, vers excel, par fichiers csv.

    Plutôt que de me battre avec les format de date, j'ai imaginé utiliser l'information brute, fournie par SQL et (normalement) comprise par Excel.

    A ma grande surprise, je "perd" deux jour en arrivant sous Excel !?!

    J'ai eu beau chercher sur le net et dans ce forum, je n'ai pas trouvé d'explication, peut être l'un de vous aurait une idée ?

    Voici l'exemple :

    Sous SQL-Serveur, la date 14/11/2012 10:55:25 s'écrit au format brut (nombre de jour depuis le 1er janvier 1900, nombre de ms depuis minuit) comme ceci :
    41225,4551595679

    Sous Excel, je copie ce chiffre, que je met au format date
    et voila le résultat :
    12/11/2012 10:55:26

    Qu'est ce qui peut bien expliquer cette différence de 2 jours ?


    Cordialement,
    David

  2. #2
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Essaye de créer directement une connexion vers ta base depuis Excel.
    Quelle est ta version Excel ? pourquoi faire compliquer alors que tu peux faire simple ?
    Etienne ZINZINDOHOUE
    Billets-Articles

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Chef de projet
    Inscrit en
    Août 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Transports

    Informations forums :
    Inscription : Août 2011
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Merci pour ta réponse.

    Il se trouve que je besoin de transférer des données horodatées entre plusieurs postes non connectés, je vais donc persévérer.

    Néanmoins, en faisant quelques tests, je me suis rendu compte que l'un des deux logiciel se trompait. En l’occurrence, il semblerai que ce soit Excel (!)

    En effet, la commande Now() me revoi :
    41232,62829 sous Excel
    41230,62329 sous SQL Server

    Un utilitaire sur Internet me dit que le nombre de jours écoulé depuis le 01/01/1900 est de 41230 jour, comme l'indique SQL Server.

    Je vous passe le recherches, mais effectivement, c'est un très très vieux bug connu de Excel :
    There is 2 days Difference between sql and Excel w.r.t dates now... those 2 days differencec came due to following.
    1. Sql assigned 0 as 1900 Jan 1st , where as Excel assigned 1 as 1900 Jan1st... so, sql went 1 Number forward than excel
    2. and it became 2 days when Sql assumes that 1900 is not a leap year... so it wont allow February 2009... where as excel assumes that 1900 is a leap year..... so, when assigning integers to dates, sql went forward by 1.

    Pour la petite histoire, il semble que ce soit pour rester compatible avec lotus, aux débuts d'Excel (voir le lien : http://www.joelonsoftware.com/items/2006/06/16.html).

    Je compte m'en sortir d'une des deux manières suivantes :
    - passer les deux logiciel au format "Date depuis 1904" si cette option existe sous SQL Server
    - ajouter deux jours à mon export csv, ce qui le rendra compatible Excel...

    Cdt,
    David

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Chef de projet
    Inscrit en
    Août 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Transports

    Informations forums :
    Inscription : Août 2011
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Je m'en sort de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT     CONVERT(float, Date + 2) AS Expr1
    FROM        MaTable
    Le sujet me semble résolu.

  5. #5
    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
    Ce "bug" est valable pour quelle(s) version(s) d'Excel ??

    C'est fort quand même !
    Kropernic

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

Discussions similaires

  1. format date heure export SQL vers Excel
    Par Pedrito95 dans le forum VBScript
    Réponses: 2
    Dernier message: 23/07/2011, 17h29
  2. [AC-2003] Export requête (dates et heures) vers Excel
    Par constalp dans le forum VBA Access
    Réponses: 4
    Dernier message: 10/08/2010, 11h57
  3. [MySQL] Exportation SQL vers Excel
    Par Foudébois dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/08/2006, 15h56
  4. Exportation d'une requete SQL vers excel
    Par snooopy007 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 27/07/2006, 17h00
  5. Exporter des données d'un requete SQL vers excel (csv)
    Par PrinceMaster77 dans le forum ASP
    Réponses: 9
    Dernier message: 08/10/2005, 22h28

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