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

Dotnet Discussion :

Date valide dans une requete SQL


Sujet :

Dotnet

  1. #1
    Membre averti Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Points : 410
    Points
    410
    Par défaut Date valide dans une requete SQL
    Salut

    y a t il une fonction, permettant de convertir une date de type DateTime en format valide pour une requete SQL ?

    thx

  2. #2
    Membre expérimenté Avatar de LaChips
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 109
    Points : 1 482
    Points
    1 482
    Par défaut
    Bonjour,
    En fait le format de ta date est différent pour chaque base de données (à peu de chose prêt) donc précise la base de données

  3. #3
    Membre averti Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Points : 410
    Points
    410
    Par défaut
    Ah oui ....

    Base de donnees Access ....

    Est ce que le format dependra egalement de la localisation ?


  4. #4
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 173
    Points : 212
    Points
    212
    Par défaut
    quand je fais un insert ou un update, avec un sqldatasource
    avec ma date ca marche direct

  5. #5
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 173
    Points : 212
    Points
    212
    Par défaut
    Citation Envoyé par Seth77
    Ah oui ....

    Base de donnees Access ....

    Est ce que le format dependra egalement de la localisation ?

    ca faut voir sur ta base access le format

  6. #6
    Inscrit Avatar de bilb0t
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    378
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 378
    Points : 283
    Points
    283
    Par défaut
    En utilisant les paramètres c'est le framework qua ve te convertir tout ça très bien.

    Maintenant si tu fait des requetes sans paramètres c'est que tu codes comme un porc et là on peut rien faire.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Avril 2006
    Messages : 349
    Points : 320
    Points
    320
    Par défaut
    Salut !

    Je travaille avec une base de données SQLite et pour utiliser un DateTime dans une requête SQL je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maDate.ToString("yyyy-MM-dd HH:mm:ss")
    Peut-être qu'il faut faire quelque chose de semblable avec Access...

    ++

  8. #8
    Inscrit Avatar de bilb0t
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    378
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 378
    Points : 283
    Points
    283
    Par défaut
    Mais pourquoi est-ce que les gens continuent à coder comme des porcs ?

    Quand j'engage quelqu'un je passe 6 mois à lui apprendre à travailler !!!

    une requete sql ça se fait avec des params !!!

    http://webman.developpez.com/article.../sqlparameter/

  9. #9
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Citation Envoyé par bilb0t
    Mais pourquoi est-ce que les gens continuent à coder comme des porcs ?

    Quand j'engage quelqu'un je passe 6 mois à lui apprendre à travailler !!!

    une requete sql ça se fait avec des params !!!

    http://webman.developpez.com/article.../sqlparameter/
    Tu aurais pu être un peu moins brutal, mais force est de reconnaître qu'il y a un fond de vérité dans tes propos, je suis confronté à la même situation au quotidien.

  10. #10
    Membre averti Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Points : 410
    Points
    410
    Par défaut
    Kler que c brutal !!
    Quel est VERITABLEMENT l interet des parametres pour les requetes SQL ?

  11. #11
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Hmmm l'interêt est énorme.

    Premier point s'il est nécessaire de le rappeler, ça évite les problèmes de DateTime. Le IDataParameter est de type DateTime, le champ dans la base est de type DateTime, la valeur qu'on veut lui passer est de type DateTime, ça ne vous a jamais choqué de devoir convertir vos valeurs en string dans vos requêtes (que ce soit un DateTime ou autre chose) ?

    Deuxième point : Une fois votre requête écrite avec les paramètres, elle ne change plus quelle que soit la valeur que vous mettrez ensuite dans le paramètre. Clin d'oeil à tous ceux qui concatènent leur requête INSERT dans une boucle.

    Troisième point (lié au deuxième) : les SGBD standard mettent en cache les requêtes, une requête paramétrée est enregistrée efficacement et optimisée dans le cache, les requêtes construites en dur polluent le cache.

    Quatrième point : Le fait d'utiliser des paramètres SQL vous met définitivement à l'abri des erreurs (trop fréquentes) de "J'ai un apostrophe dans ma chaine, ça fait tout casser ma requête Ouin/Ouin/Please/Up/Résolu/Boulet".

    Cinquième point : vous vous mettez à l'abri des SQL Injections, pour tous ceux d'entre vous qui concatènent directement un TextBox dans leur requête.

    Sixième point : En utilisant concaténant vos valeurs dans la requête, vous introduisez une source d'erreur, une couche d'illisibilité supplémentaire.

    Septième point : En concaténant la requête, vous passez à côté de toute la belle gestion des erreurs du framework en abandonnant une hypothétique invalidecastexception en débogage au 'profit' d'une espèce d'erreur SQL générique qui ne vous donne aux mieux qu'une appréciation minable de la source de l'erreur.

    Voila.

    EDIT : Typos

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Avril 2006
    Messages : 349
    Points : 320
    Points
    320
    Par défaut
    Citation Envoyé par bilb0t
    Mais pourquoi est-ce que les gens continuent à coder comme des porcs ?

    Quand j'engage quelqu'un je passe 6 mois à lui apprendre à travailler !!!

    une requete sql ça se fait avec des params !!!

    http://webman.developpez.com/article.../sqlparameter/
    Sans doute parce que "les gens" apprennent à développer.

    Dans mon cas ça ne fait que quelques mois que j'apprends la POO, le .Net 2 et le SQL en parallèle. J'en apprends tous les jours, de nouvelles choses et aussi de meilleures techniques. Je ne me suis pas encore penché sur les requêtes paramétrées, tout d'abord parce que je n'en avais pas encore vu l'intérêt.

    En tout cas merci pour le lien, je vais appliquer ça de suite.

    ++

  13. #13
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Je passe 15 minutes à écrire une tartine, et personne ne l'a lue
    C'est vraiment trop injuste

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Avril 2006
    Messages : 349
    Points : 320
    Points
    320
    Par défaut
    Citation Envoyé par SaumonAgile
    Je passe 15 minutes à écrire une tartine, et personne ne l'a lue
    C'est vraiment trop injuste
    Non non non ne pleure pas...

    J'ai lu ton post, et je suis convaincu de la nécessité des requêtes paramétrées. Comme je l'ai dit juste avant, je vais appliquer tout ça.

    ++

  15. #15
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 173
    Points : 212
    Points
    212
    Par défaut
    pourquoi est ce que tu ne parse pas ta date
    genre datetime.parse qqe chose avant de l'insérer dans la base
    non je dis n'importe quoi

  16. #16
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Citation Envoyé par X-Nem
    pourquoi est ce que tu ne parse pas ta date
    genre datetime.parse qqe chose avant de l'insérer dans la base
    Tu sors

  17. #17
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 173
    Points : 212
    Points
    212
    Par défaut
    Citation Envoyé par SaumonAgile
    Tu sors
    non je sais je me suis rendu compte
    faut l'inserer avec une requete et c qu'en string oui je sais

  18. #18
    Inscrit Avatar de bilb0t
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    378
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 378
    Points : 283
    Points
    283
    Par défaut
    Citation Envoyé par SaumonAgile
    Hmmm l'interêt est énorme.

    Premier point s'il est nécessaire de le rappeler, ça évite les problèmes de DateTime. Le IDataParameter est de type DateTime, le champ dans la base est de type DateTime, la valeur qu'on veut lui passer est de type DateTime, ça ne vous a jamais choqué de devoir convertir vos valeurs en string dans vos requêtes (que ce soit un DateTime ou autre chose) ?

    Deuxième point : Une fois votre requête écrite avec les paramètres, elle ne change plus quelle que soit la valeur que vous mettrez ensuite dans le paramètre. Clin d'oeil à tous ceux qui concatènent leur requête INSERT dans une boucle.

    Troisième point (lié au deuxième) : les SGBD standard mettent en cache les requêtes, une requête paramétrée est enregistrée efficacement et optimisée dans le cache, les requêtes construites en dur polluent le cache.

    Quatrième point : Le fait d'utiliser des paramètres SQL vous met définitivement à l'abri des erreurs (trop fréquentes) de "J'ai un apostrophe dans ma chaine, ça fait tout casser ma requête Ouin/Ouin/Please/Up/Résolu/Boulet".

    Cinquième point : vous vous mettez à l'abri des SQL Injections, pour tous ceux d'entre vous qui concatènent directement un TextBox dans leur requête.

    Sixième point : En utilisant concaténant vos valeurs dans la requête, vous introduisez une source d'erreur, une couche d'illisibilité supplémentaire.

    Septième point : En concaténant la requête, vous passez à côté de toute la belle gestion des erreurs du framework en abandonnant une hypothétique invalidecastexception en débogage au 'profit' d'une espèce d'erreur SQL générique qui ne vous donne aux mieux qu'une appréciation minable de la source de l'erreur.

    Voila.

    EDIT : Typos
    Waouw, je ne l'aurais pas mieux dit !!!

Discussions similaires

  1. comparaison de 2 dates dans une requete SQL
    Par f-mory dans le forum Développement de jobs
    Réponses: 6
    Dernier message: 06/04/2010, 11h28
  2. [MySQL]pb de récupération de dates dans une requête SQL
    Par MisterGé dans le forum Langage SQL
    Réponses: 2
    Dernier message: 30/07/2007, 13h51
  3. Format date dans une requete SQL
    Par noratec dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 10/01/2007, 12h06
  4. [SQL INTERBASE] format de date dans une requete sql
    Par arnolpourri dans le forum InterBase
    Réponses: 5
    Dernier message: 03/07/2006, 11h42
  5. [MySQL] Comparer des info date dans une requete SQL
    Par kaygee dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 06/01/2006, 21h56

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