2009-05-07 9 views
16

je suis coincé avec ce problème pendant plusieurs jours, ce qui est quelque chose comme le calcul du nombre de semaines qui se trouve entre deux jours, par exemple:calcul de la semaine MySQL entre deux dates

Select @Days = (datediff(week, @pdtFromDate, @pdtToDate) - 1) * 5 

Cela renvoie la sortie comme 257.

J'ai besoin de convertir ce script en MySQL.

Répondre

28
DATEDIFF(@date1, @date2)/7 

qui retourne une fraction que je devine que vous aurez envie de compléter en quelque sorte avec CEIL(), ROUND() ou FLOOR()

Mon exemple de test avec deux dates définies:

SELECT FLOOR(DATEDIFF(DATE(20090215), DATE(20090101))/7); 
+1

le genre de réponses qui me donne envie de me mettre dans un trou quand je me rends compte à quel point j'étais bête, je me demandais comment obtenir des semaines depuis des jours. –

0

vous pouvez également essayer cela car il sépare les semaines et les jours.

SET @day1=DATE('2015-02-02'); 
    SET @day2=DATE('2015-02-10'); 
    SELECT CONCAT(SUBSTRING_INDEX(ABS(DATEDIFF(@day1,@day2)/7),'.',1),'Weeks ', 
    SUBSTRING_INDEX(ABS(DATEDIFF(@day1,@day2)),'.',1)-SUBSTRING_INDEX(ABS(DATEDIFF(@day1,@day2))/7,'.',1)*7,'Days' 
    )AS diff 
Questions connexes