2009-05-07 12 views
16

Zostałem zatrzymany w tej sprawie przez kilka dni, co jest coś takiego obliczania liczby tygodni, które leży między dwa dni, na przykład:MySQL tydzień obliczanie między dwiema datami

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

ten powraca jako wyjście 257.

Potrzebuję przekonwertować ten skrypt na MySQL.

Odpowiedz

28
DATEDIFF(@date1, @date2)/7 

która zwraca ułamek który Zgaduję będziesz chciał zaokrąglić w jakiś sposób z CEIL(), ROUND() lub FLOOR()

moim przykładzie testowym z dwoma określonymi datami:

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

rodzaj odpowiedzi, które sprawiają, że chcę dostać się do dziury, gdy zdaję sobie sprawę, jak jestem głupi, zastanawiając się, jak dostać tygodnie od dni .. –

0

możesz również spróbować, ponieważ oddziela tygodnie i dni.

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 
Powiązane problemy