2009-05-07 24 views
16

He estado pegado con este número por día, que es algo así como el cálculo del número de semanas que se encuentra entre dos días, por ejemplo:MySQL cálculo semana entre dos fechas

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

Esto devuelve el resultado como 257.

Necesito convertir este script en MySQL.

Respuesta

28
DATEDIFF(@date1, @date2)/7 

que devuelve una fracción que supongo que querrá redondear de alguna manera con CEIL(), ROUND() o FLOOR()

Mi ejemplo de prueba con dos fechas definidas:

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

el tipo de respuestas que me dan ganas de meterme en un agujero cuando me doy cuenta de lo tonto que era, preguntándome cómo obtener semanas de días ... –

0

también puedes probar esto ya que separa semanas y días.

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 
Cuestiones relacionadas