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

C# Discussion :

Le format d'affichage des Dates sur C#


Sujet :

C#

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2010
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 163
    Points : 77
    Points
    77
    Par défaut Le format d'affichage des Dates sur C#
    Bonjour à Tous ,

    J'ai un DATATABLE de stockage des Dates pour l'exécution de mes requêtes SQL. En C# en initialisant une variable de Type DateTime il l'affiche sous le format suivant: Exple : 31/10/2010 00:00:00

    Toutefois SQL ne traite pas ce format même en faisant convert.tostring.

    En effet , SQL traite une date sous ce format 31-oct.-2010

    Est ce que quelqu'un peut me dire comment changer automatiquement les formats des dates , sinon je suis obligé d'écrire tout un code pour le faire

    Merci

  2. #2
    Membre éclairé Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 612
    Points : 685
    Points
    685
    Par défaut
    Utilise des requêtes paramétrées. Ca évite ce genre de problèmes.

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2010
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 163
    Points : 77
    Points
    77
    Par défaut
    Citation Envoyé par ppphil Voir le message
    Utilise des requêtes paramétrées. Ca évite ce genre de problèmes.
    Et comment exécuter une requête paramétrée sur C# ?

  4. #4
    Membre régulier Avatar de SetaSensei
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 104
    Points
    104
    Par défaut
    Bonjour,

    Je ne sais pas sous quel moteur SQL vous tournez, mais s'il s'agit de SQL Server, je vous invite à regarder ce lien :

    http://msdn.microsoft.com/en-us/library/ms187928.aspx

    Vous pouvez directement définir dans votre requête le format de date que vous voulez récupérer.

    EDIT : A savoir que cette solution existe (théoriquement) pour tous les moteurs SQL dignes de ce nom. De plus, s'il s'agit d'une requête insert / update, le convert() marche aussi dans l'autre sens.

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2010
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 163
    Points : 77
    Points
    77
    Par défaut
    Citation Envoyé par SetaSensei Voir le message
    Bonjour,

    Je ne sais pas sous quel moteur SQL vous tournez, mais s'il s'agit de SQL Server, je vous invite à regarder ce lien :

    http://msdn.microsoft.com/en-us/library/ms187928.aspx

    Vous pouvez directement définir dans votre requête le format de date que vous voulez récupérer.

    EDIT : A savoir que cette solution existe (théoriquement) pour tous les moteurs SQL dignes de ce nom. De plus, s'il s'agit d'une requête insert / update, le convert() marche aussi dans l'autre sens.
    En fait je travaille sur un moteur SQL Oracle!
    Mais je pense que je vais juste charger mes Données sur mon DataTable, à travers un simple select * from xxx , ensuite faire tous les traitement nécessaire et faire un update sur ma table oracle. C'est plus optimal, non?

  6. #6
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2009
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 229
    Points : 305
    Points
    305

  7. #7
    Membre régulier Avatar de SetaSensei
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 104
    Points
    104
    Par défaut
    Citation Envoyé par hazem2410 Voir le message
    En fait je travaille sur un moteur SQL Oracle!
    Mais je pense que je vais juste charger mes Données sur mon DataTable, à travers un simple select * from xxx , ensuite faire tous les traitement nécessaire et faire un update sur ma table oracle. C'est plus optimal, non?
    Oracle a aussi cette notion de conversion bien que je ne connaisse pas sa syntaxe.

    Ca reste très subjectif comme raisonnement, mais j'ai tendance à préférer m'occuper des conversions de données directement dans le moteur SQL. D'un point de vue performances, effectivement, il est possible que s'en occuper dans son code C# soit plus optimisé mais a, à mes yeux, plusieurs inconvénients :
    • A moins d'un bulk insert, le temps de conversion gagné est généralement très négligeable
    • Le temps passé à coder les méthodes de conversions pourrait être mis à profit pour d'autres optimisations
    • Si le moteur de BDD utilisé change pour une raison ou pour une autre, tout est à recoder (en même temps, les requêtes le seront aussi...)

  8. #8
    Membre éclairé Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 612
    Points : 685
    Points
    685
    Par défaut
    Dans un sens (select sur une date) tu récupère un objet que tu caste en DateTime.
    A partir de la tu peux afficher ce dateTime comme bon te semble.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monDateTime.ToString("yyyy-MM-dd") //p.ex
    En sens inverse (insert, update) tu balance ton dateTime dans une requête paramétrée : regarde ici

  9. #9
    Membre régulier
    Inscrit en
    Novembre 2010
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 163
    Points : 77
    Points
    77
    Par défaut
    Citation Envoyé par ppphil Voir le message
    Dans un sens (select sur une date) tu récupère un objet que tu caste en DateTime.
    A partir de la tu peux afficher ce dateTime comme bon te semble.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monDateTime.ToString("yyyy-MM-dd") //p.ex
    En sens inverse (insert, update) tu balance ton dateTime dans une requête paramétrée : regarde ici
    Merci bcp ça aide énormément
    Reste uniquement une dernière chose. Il m'affiche maintenant 31-10.-2010
    alors que moi je veux qu'il m'affiche 31-oct.-2010

    Merci bcp pour ta coopération

  10. #10
    Membre régulier Avatar de SetaSensei
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 104
    Points
    104
    Par défaut
    Un petit tour par là devrait t'aider :
    http://msdn.microsoft.com/en-us/libr...(v=VS.71).aspx

    peut être un peu plus lisible :
    http://www.geekzilla.co.uk/View00FF7...59AA20581F.htm

  11. #11
    Membre régulier
    Inscrit en
    Novembre 2010
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 163
    Points : 77
    Points
    77
    Par défaut
    Citation Envoyé par SetaSensei Voir le message
    Un petit tour par là devrait t'aider :
    http://msdn.microsoft.com/en-us/libr...(v=VS.71).aspx

    peut être un peu plus lisible :
    http://www.geekzilla.co.uk/View00FF7...59AA20581F.htm
    Merci c'est résolu
    En fait il s'agit d'utiliser ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    string dat_sit = Convert.ToDateTime(DIM_DATE.Rows[index]["DAT_SIT"]).ToString("dd/MM/yyyy");
    et le rajout des cotes ' ' à la fin

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

Discussions similaires

  1. [Lazarus] Format d'affichage des dates sous Windows et Linux
    Par ChPr dans le forum Lazarus
    Réponses: 2
    Dernier message: 24/11/2009, 11h16
  2. Format d'affichage des dates sur les graphiques
    Par marjo69 dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 05/05/2008, 20h21
  3. Changement du format d'affichage des dates
    Par tchoimars dans le forum Sql Developer
    Réponses: 2
    Dernier message: 05/07/2007, 15h09
  4. [VB6] [Flexgrid] Format d'affichage des numériques
    Par yansolo dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/10/2002, 21h00

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