MySQL недельный расчет между двумя датами - PullRequest
16 голосов
/ 07 мая 2009

Я застрял с этой проблемой в течение нескольких дней, что похоже на подсчет количества недель, которые лежат между двумя днями, например:

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

Возвращает вывод как 257.

Мне нужно конвертировать этот скрипт в MySQL.

Ответы [ 2 ]

31 голосов
/ 07 мая 2009
DATEDIFF(@date1, @date2)/7

Возвращает дробь, которую, я полагаю, вы хотите каким-то образом округлить с CEIL(), ROUND() или FLOOR()

Мой тестовый пример с двумя определенными датами:

SELECT FLOOR(DATEDIFF(DATE(20090215), DATE(20090101))/7);
0 голосов
/ 29 марта 2016

Вы также можете попробовать это, так как это разделяет недели и дни.

    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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...