Résultats des 6 derniers mois - SQL/NoSQL - Programmation
Marsh Posté le 02-04-2024 à 12:07:37
bingojm a écrit : Bonjour à tous,
|
Bonjour,
Je ne suis pas expert SQL mais pour moi le "And Year..." n'est pas utile à moins de vouloir spécifier une année antérieure à 2024 au lieu de current_date et je dirais qu'il manque des parenthèses.
Je ferais quelque chose comme ça :
Code :
|
Marsh Posté le 02-04-2024 à 12:22:20
J'avais cru comprendre qu'il fallait ajouter YEAR quand on se retrouve avec des résultats sur des années différentes.
Aussi, en ajoutant les parenthèses, j'ai un message d'erreur de syntaxe. Il ne les faut donc pas. En 2023, je n'ai eu aucun souci! C'est juste depuis qu'on a des résultats sur 2 années que ça pose problème. C'est pour ça que j'ai ajouté YEAR, mais cela n'est pas suffisant... Je n'ai pas de message d'erreur, mais juste aucun résultat qui s'affiche...
Marsh Posté le 03-04-2024 à 17:29:45
Et un truc du genre :
Code :
|
https://stackoverflow.com/questions [...] rent-month
Marsh Posté le 03-04-2024 à 22:52:09
Merci mais je veux récupérer les 6 derniers mois entiers avant le mois actuel. Donc pas par rapport à aujourd’hui. Vu que nous sommes en avril, il me faut donc les résultats du 1/10/2033 au 31/3/2024.
Merci!
Marsh Posté le 04-04-2024 à 08:16:24
Code :
|
C'est ptet un <=, faut ptet préciser 23:59:59, j'ai pas d’échantillon de donnée me permettant de tester.
Après tu peux aussi bidouiller dans phpmyadmin pour tester toi même ce qui va fonctionner hein...
Marsh Posté le 04-04-2024 à 20:47:01
mechkurt a écrit :
|
Merci mechkurt! Je ne connaissais as last_day. Ca avance!
Voici ce que j'ai fait:
Code :
|
Cela fonctionne bien, sauf qu'effectivement il ne prend pas les enregistrements du 31/3/2024.
Ca irait en ajoutant 23:59:59? mais peux-tu me dire comment? Mes tentatives ne sont pas correctes...
Merci d'avance
Marsh Posté le 04-04-2024 à 23:49:03
https://sqlfiddle.com/mysql/online- [...] 51ebcdc124
Code :
|
Ce serait probablement plus performant si tu avais un champ date au lieu de datetime ou timestamp, mais c'est le type de champ que tu dois avoir si il te manque le dernier jour car en faisant une comparaison avec un date convertit en datetime tu te retrouves avec 00:00:00, ce qui n'est pas gênant pour la borne de début mais ce qui oblige d'avoir un < et le premier jour du mois d'après pour la borne de fin.
https://stackoverflow.com/questions [...] -inclusive
Marsh Posté le 08-04-2024 à 11:37:04
Merci beaucoup. J'y suis arrivé.
Pour ceux que ça intéresse:
Code :
|
Marsh Posté le 08-04-2024 à 13:08:16
De rien, effectivement avec DATE_FORMAT on peut force l'heure, par contre sur les stackoverflow que je t'ai link les gens déconseillent <= le dernier jour 23:59:59 et encourage plutôt a faire < du lendemain.
Pourquoi, pacque le format de temps SQL peut aussi avoir des milliseconde sous forme d'un point après les secondes.
Tu peux soit continuer comme tu le fait et corriger avec '%Y-%m-%d 23:59:59.999', soit comme je te le conseillais à la base faire un < LAST_DAY(NOW() - INTERVAL 1 MONTH) + INTERVAL 1 DAY.
Après tu n'est probablement pas dans un cas ou tu as besoin de cette précision mais c'est bon à savoir...
Marsh Posté le 09-04-2024 à 13:33:30
Ah, il est donc sur Mysql apparemment
Marsh Posté le 09-04-2024 à 13:38:57
bingojm a écrit : Merci beaucoup. J'y suis arrivé.
|
Pourquoi tu formaterais pas plutôt ton champ "date" vu que les heures ne t'intéressent pas ??
Code :
|
Marsh Posté le 02-04-2024 à 11:53:30
Bonjour à tous,
J'ai un souci avec une condition pour afficher les résultats des 6 derniers mois.
Tout fonctionnait bien l'année dernière, mais depuis que nous sommes passés en 2024, cela ne va plus.
Je cherche donc à afficher les résultats des 6 derniers mois. Nous sommes en avril, il faut donc afficher les résultats de octobre 2023 à mars 2024.
Voici mon code:
Pouvez-vous m'aider?
Merci d'avance!