CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

requete sql

chanac_hares
chanac_hares
Niveau 9
11 juin 2009 à 18:41:11

bonjour,
j'aurais juste une toute petite question , j'explique mon cas, j'ai une BD avec une table prix et dans cette table il y a une colonne Date_Debut et une autre Date_Fin ..

je souhaiterai recuperer toutes les lignes dont la date d'aujourdhui est comprise entre Date_debut et Date_fin , je souhaiterais egalement recuperer la ligne si la Date_Debut est egale a la date d'aujourd'hui ou meme si la Date_Fin est egale a la date d'aujourd'hui ...

j'ai essayé ca mais a priri ca marche pas $$

String req = "SELECT * FROM prix_extra WHERE id_Extra = "+ e.getId()+" AND ( ( "+dateDuJour+" BETWEEN Date_Debut AND Date_Fin ) OR ("+dateDuJour+" = Date_Debut ) OR ("+dateDuJour+" = Date_Fin ) )";

peut etre cela vient t-il du '=', quelqu'un sait comment on compare deux date en sql ..

merci a tous

_skip
_skip
Niveau 10
11 juin 2009 à 19:27:27

Un between ca doit marcher, et sauf erreur de ma part c'est inclusif (les bornes min et max sont considérées comme ok).

Par contre il faut voir ce que contient dateDuJour exactement et se dire que c'est transformé en texte dans la requête SQL et c'est souvent là que les gens se gourrent quand ils utilisent des dates. Les bases de données attendent souvent la date dans un format précis, certaines c'est du MM/DD/AAAA d'autres du DD.MM.AAAA bref c'est infernal.

Y'a deux choses que tu peux faire,
1) afficher req avant l'exécution pour se rendre compte exactement de la requête finale, puis ensuite tu peux copier-coller la requête dans un éditeur et la modifier jusqu'à ce que tu trouves la bonne syntaxe pour cette date.

2) Utiliser une requête paramétrée (prepared Statement) puis laisser l'API gérer ce problème (c'est la manière propre). Concaténer des paramètres en plain text comme tu le fais c'est pas acceptable dans un projet sérieux.

chanac_hares
chanac_hares
Niveau 9
11 juin 2009 à 23:33:07

oki merci, j'ai effectivement utiliser des preparedStatement mais ca pas regler le probleme du egale, parceque a priori et ca metonne aussi le between n'est pas inclusif ..

mais bon je m'en suit sorti $$

merci pour ta reponse

chanac_hares
chanac_hares
Niveau 9
12 juin 2009 à 00:32:28

mais ou alors jss trop fatigué, ou alors il n'existe pas de comparateur d'égalité pour deux date ..

je me trompe ?? ?

godrik
godrik
Niveau 30
12 juin 2009 à 14:15:30

l'operateur BETWEEN fonctionne pour des dates

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment