8
votes

MySQL: Comment calculer des semaines à partir d'une date précise?

Je dois calculer les semaines à partir d'une date de mon énoncé MySQL Select. Il y a une colonne de date dans l'une des tables et j'ai besoin de calculer le nombre de semaines de la date.

SELECT EventDate, (calculation) AS WeeksOut FROM Events;
  • 6 jours de distance, semaines out = 0 li>
  • 7 jours de distance, semaines out = 1 li>
  • 13 jours de distance, semaines out = 1 li>
  • 14 jours de distance, semaines out = 2 li> ul> p>


2 commentaires

Que voulez-vous faire pour des semaines partielles? Par exemple: devrait être 3,2857 semaines 3 semaines, 4 semaines ou quelque chose entre les deux?


Oui, il devrait être arrondi à la semaine entière la plus proche


4 Réponses :


20
votes

2 commentaires

Plus un, mais pouvez-vous ajouter le lien vers la documentation pour de meilleures explications. Pourquoi le 0 après le 7?


@Johnmax: informations supplémentaires sur le 0.



2
votes

Voici un moyen simple de le faire: xxx

exemple: xxx

une autre option est calculer l'intervalle en jours et diviser par 7: xxx

exemple: xxx


2 commentaires

Belle explication +1 de mon côté


Votre (première) solution ne fonctionnera que si les dates sont dans la même année. Donc, par exemple, lorsque l'événement est en janvier et qu'il est maintenant décembre, cela ne fonctionnera pas.



3
votes

Afin de dépasser l'ensemble de la "nouvelle année" et que vous souhaitez toujours utiliser semaine () , j'ai trouvé la méthode suivante assez efficace. XXX

La différence avec cette Méthode (par opposition à la méthode datrodiff ) est qu'elle est alignée avec la semaine. Donc aujourd'hui (qui est lundi) et vendredi dernier retournerait 1 à l'aide de cette méthode, mais retournerait 0 avec le datrodiff méthode


0 commentaires