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

Collection et Stream Java Discussion :

convertir Date en Mili second en un TimeStamp SQL server


Sujet :

Collection et Stream Java

  1. #1
    Membre confirmé Avatar de zambizi
    Inscrit en
    Juin 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2007
    Messages : 109
    Par défaut convertir Date en Mili second en un TimeStamp SQL server
    Bonjour a tous !

    J’ai développé une fonction qui permet de convertir une Date représenté en Milli second en un TimeStamp (SQL server) mais mon problème ce que cette fonction me donne de résultat erroné pour le « 02/11/2007»= 39385 jours (ça doit être 39386 il manque un jour !!)
    et pour le 02/10/2007 elle me donne 39355 c'est correct

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public static final double  toMilliSecConst =86400000;// un jour en MS.
    public static final double from1970To1899 = 25567;// Nombre de jour du 31/12/1899 juqu'au 1/1/1970.
     
    public static long convertFromLongJavaDateFormatToMsDateFormat(long pMsDate){
     
            return (long)((pMsDate/toMilliSecConst)+ from1970To1899)-31;
    }
    Connaissez vous ce problème ? avez une idée pour la corrigée ?

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,



    J'ai un peu de mal à comprendre ce que fait ton code... mais les manipulations de date ne sont pas aussi simple que cela malheureusement !

    Mais pourquoi ne passes tu pas par la classe TimeStamp ? C'est ton driver JDBC qui devrait se charger de cette conversion !

    a++

  3. #3
    Membre confirmé Avatar de zambizi
    Inscrit en
    Juin 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2007
    Messages : 109
    Par défaut Ok, je m’explique
    Merci pour votre réponse
    Ok, je m’explique

    Les Dates en java sont en Milisecond par rapport au 1970 alors que les TimeStamp SQL server sont en nombre de jour par rapport au 1899.

    Dans ma base j’ai un champs en TimeStamp par exemple DateCreation =39355 qui est le 02/10/2007.

    Donc pour pouvoir paramètre ma requette
    Select * from employee where DateCreation = ??

    Le paramètre que j’ai c’est 02/11/2007 que je doit le convertir en TimeStamp!

  4. #4
    Invité
    Invité(e)
    Par défaut
    Salut,
    Perso chez moi ca ca marche plutôt bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    import java.util.Date;
    import java.sql.Timestamp
    ...
    new Timestamp(new Date().getTime());
    voir http://java.sun.com/javase/6/docs/ap...imestamp(long)

  5. #5
    Membre confirmé Avatar de zambizi
    Inscrit en
    Juin 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2007
    Messages : 109
    Par défaut Problème résolu.
    Bonjour a vous tous !

    J’ai pu corriger ma fonction, voici la nouvelle version :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public static final double  toMilliSecConst =86400000;// un jour en MS.
    public static final double from1970To1899 = 25567;// Nombre de jour du 31/12/1899 juqu'au 1/1/1970.
     
    public static long convertFromLongJavaDateFormatToMsDateFormat(long pMsDate){
     
            return (long)((pMsDate/toMilliSecConst)+ from1970To1899)-NbrofDayInMonth;
    }

    @+

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

Discussions similaires

  1. Obtenir timestamp SQL Server 2005
    Par le-corse-du-54 dans le forum Développement
    Réponses: 3
    Dernier message: 25/05/2012, 15h58
  2. Conversion date format texte en timestamp sql server 2008 R2
    Par nathantahiti dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 02/09/2011, 09h02
  3. convertir une base sqlserve .sdf vers une base sql server .mdf
    Par solitude dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/01/2010, 22h54
  4. Date en format Jour/Mois/Année sur SQL server 2K5 Anglais
    Par YoussefTS dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 19/11/2008, 11h03
  5. Récupérer les dates de l'année en cours sur SQL Server
    Par And_res dans le forum Bases de données
    Réponses: 5
    Dernier message: 17/10/2008, 09h51

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