2009-05-07 31 views
16

Sono stato bloccato con questo problema per giorni, che è qualcosa di simile a calcolare il numero di settimane che si trova tra due giorni, ad esempio:MySQL settimana calcolo tra due date

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

Questo restituisce l'output come 257.

Ho bisogno di convertire questo script in MySQL.

risposta

28
DATEDIFF(@date1, @date2)/7 

che restituisce una frazione che sto cercando di indovinare ti consigliamo di arrotondare in qualche modo con CEIL(), ROUND() o FLOOR()

Il mio esempio test con due date definite:

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

il tipo di risposte che mi fanno venir voglia di entrare in un buco quando mi rendo conto di quanto fossi stupido, chiedendomi come ottenere settimane da giorni .. –

0

potresti anche provare questo in quanto separa settimane e giorni.

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 
Problemi correlati