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

JDBC Java Discussion :

[java.sql.Date] format compatible tout sgbd ?


Sujet :

JDBC Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2004
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 48
    Points : 34
    Points
    34
    Par défaut [java.sql.Date] format compatible tout sgbd ?
    Bonjour,

    Je pensai que le type java.sql.Date etait compatible tout sgbd avec les drivers JDBC de type 4 ?

    Le probleme c'est que j'ai des messages d'erreur en essayant d'inerer une sql.Date dans MSSQL, sous MySql pas de probleme Acczss non plus ...
    Donc voila le format de ma sql.Date "yyyy-MM-dd" et MSSQL "yyyy-MM-dd HH:mm:ss.ms"

    En inserent une sql.Date directement ca donne ce message :
    La conversion d'un type de données CHAR en type DATETIME a donné une valeur hors des limites de valeurs et d'heures

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2004
    Messages : 85
    Points : 107
    Points
    107
    Par défaut
    Qu'est-ce que tu utilises comme objet JDBC pour définir ta requête sql ?

    Si c'est un PrepareStatement, quelle est la méthode que tu utilises pour ajouter ta date à ta requête ? Essai avec la méthode setDate si jamais...

    Ref : http://java.sun.com/j2se/1.4.2/docs/api/java/sql/PreparedStatement.html

  3. #3
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut Re: [java.sql.Date] format compatible tout sgbd ?
    Citation Envoyé par djskyz
    Donc voila le format de ma sql.Date "yyyy-MM-dd" et MSSQL "yyyy-MM-dd HH:mm:ss.ms"
    La date de MSSQL correspond plus à un type TIMESTAMP qu'a un type DATE

    Utilise la classe java.sql.Timestamp à la place...

    a++

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2004
    Messages : 85
    Points : 107
    Points
    107
    Par défaut
    C'est juste !!! J'avais oublié cette solution... ...

    Merci adiGuba...

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2004
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 48
    Points : 34
    Points
    34
    Par défaut
    Oui j'y est penser aussi, le probleme c'est que je voudrais avoir un code generique pour plusieurs base ...
    Le format de date que je desire stocker c'est "yyyy-MM-dd" mais dans MSSQL j'ai pas reussi a formatter la colone datetime ainsi.

    Et je passe pas par un prepared PrepareStatement.
    Sinon la seule solution que j'ai trouver entre temps c'est de redefinir une methode parseDate() dans chaque classe correspondant au sgbd utilisé qui heritent d'une classe abstraite Database...

    Mais bon je pensait vraiment que sql.Date etait fait expres pour etre compatible tout sgbd !?

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Points : 1 151
    Points
    1 151
    Par défaut
    Les classes Date, Time et TimeStamp sont compatible pour toutes les bases de données, c'est le Driver JDBC qui se charge de la conversion.

    Si tu a un souci, change de driver de base.
    C'est le cas entre autre avec le driver JDBC fourni par Microsoft de MsSql Server.

    Autre chose, une date, une heure ou un couple date/heure sont stockée dans un long.
    Aucun formattage n'est donc permis sur ce type de donnée.

    Ne pas confondre persistance et présentation.
    Clic me...
    CV en ligne

    Il y a 10 types de personnes, celui qui connait le binaire, et l'autre...

    Pas de réponse en MP...Merci

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juillet 2004
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 48
    Points : 34
    Points
    34
    Par défaut
    Ah donc c un probleme de driver !?
    Ou puis-je en trouver un autre ? j'ai fais une p'tite recherche google mais j'en ai pas trouver ...

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Points : 1 151
    Points
    1 151
    Par défaut
    Les drivers JDBC sont en règle gérénal fourni avec les SGBD.
    Pour SqlServer, il en existe un gratuit dispo sur sourceforge qui marche sans aucun problème.
    Les autres, sont payant.

    Fait une recherche sur jtds ( http://jtds.sourceforge.net/ de mémoire )
    Clic me...
    CV en ligne

    Il y a 10 types de personnes, celui qui connait le binaire, et l'autre...

    Pas de réponse en MP...Merci

  9. #9
    Nouveau membre du Club
    Inscrit en
    Juillet 2004
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 48
    Points : 34
    Points
    34
    Par défaut
    Et bein merci a vous, c'etait bien un probleme de driver !
    Avec jtds aucun probleme ...
    P't1 microsoft y font vraiment tout pour nou sfaire chier ...

    Merci encore !

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 03/07/2007, 11h03
  2. Cast de java.util.DATE à java.sql.DATE
    Par mnemonic78 dans le forum Langage
    Réponses: 6
    Dernier message: 05/01/2007, 08h21
  3. Conflit entre java.util.Date et class java.sql.Date
    Par vonitiana dans le forum Langage
    Réponses: 3
    Dernier message: 30/06/2006, 11h43
  4. de java.sql.Date à java.utile.Date
    Par Sniper37 dans le forum API standards et tierces
    Réponses: 10
    Dernier message: 23/05/2006, 16h10
  5. [Date][SQL date][Format] insertion d'une heure
    Par goulime dans le forum JDBC
    Réponses: 11
    Dernier message: 26/01/2004, 11h38

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