Bonjour a tous Exemple de recherche sur le mois de septembre : SELECT * FROM [MaTable] WHERE Data BETWEEN '01/09/19' AND '30/09/19' La requête fonctionne mais ne renvois pas les bons résultats. Le champ Data de [MaTable] est de type texte au format JJ/MM/AA Meme avec dateverschaine(monCalendrier,"JJ/MM/AA" la requête n'est pas valable mais fonctionne sans erreur SELECT * FROM [MaTable] WHERE Data BETWEEN '"+dateverschaine(monCalendrierdatedebut,"JJ/MM/AA)"+"' AND '"+dateverschaine(monCalendrierdateFIn,"JJ/MM/AA"+"'" Avez vous une idée pour avoir que les valeurs entre ces deux dates. Cordialement.
salut Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! , essai SELECT * FROM [MaTable] WHERE Data BETWEEN '20190901' AND '20190930'
Salut Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! , Si tu veux utiliser t'es variables de type date n'essaye pas de les convertir en format "JJ/MM/AA". Le format des dates dans les tables est "AAAAMMJJ" et les variables de type date ou les champs calendriers retournent déjà les dates au bon format.
Oui le champ calendrier retourne bien des dates au format AAAAMMJJ, le problème c'est que les données que je voudrais utiliser son au format texte dans une table sur sqlserveur. Les données sont "JJ/MM/AA" donc une chaîne pour moi.Donc vous pensez que juste de faire SELECT * FROM [MaTable] WHERE Data BETWEEN '20190901' AND '20190930' avec ma colonne Data "jj/MM/AA" suffirais.Je n'ai pas la possibilité de changer le format sur le serveur. Demain j'essais votre proposition mais il me semble que la requete fonctionne et ne retourne rien. Cordialement.
si tu veux faire un tri au format JJ/MM/AA ça ne retournera jamais la bonne chose. 01/01/99 < 02/01/01 tout simplement car le 2e caractère trier est le 1 et 2 même si l'année est plus petite dans la 2e date si tu veux vraiment faire des trie et que dans ta table sql c'est VRAIMENT du texte et nom une date affiché au format JJ/MM/AA et bien tu vas devoir faire une convertion ton where devrait ressembler à ceci selon moi WHERE (Mid(Data, 7, 2) + Mid(Data, 3, 2) + Left(Data, 2)) BETWEEN '190901' AND '190930' Et idéalement une année ne devrait pas être jamais être sur 2 caractère mais bien sur 4 de peur du bug de l'an 2000 Donc ton where devrait plutôt être WHERE ('20' + Mid(Data, 7, 2) + Mid(Data, 3, 2) + Left(Data, 2)) BETWEEN '20190901' AND '20190930' à noter que le '20' devrait être une fonction qui te retourne réellement le bon millénaire Attention aussi que le format soit pas une Dateheure ce qui encore là peut cause des problème côté trie (retourne AAAAMMJJHHmmSSCC) un left(Data, 8) pour récupéré juste la date et non l'heure peut être nécessaire
après plusieurs essais j'ai noté après mon WHERE CONVERT(CAST(Data as date), >='date_debut' AND CONVERT(CAST(Data as date),<='date_FIn' .La requête a fonctionné