Расчет недельной недели между двумя датами
Я застрял в этом вопросе в течение нескольких дней, что-то вроде расчета числа недель, которое находится между двумя днями, например:
Select @Days = (datediff( week, @pdtFromDate, @pdtToDate) - 1) * 5
Это возвращает результат как 257.
Мне нужно преобразовать этот script в MySQL.
Ответы
Ответ 1
DATEDIFF(@date1, @date2)/7
Это возвращает часть, которая, как я предполагаю, вам нужно каким-то образом округлить с помощью CEIL()
, ROUND()
или FLOOR()
Мой пример с двумя определенными датами:
SELECT FLOOR(DATEDIFF(DATE(20090215), DATE(20090101))/7);
Ответ 2
вы также можете попробовать это, поскольку он отделяет недели и дни.
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