Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 1
Регистрация: 05.07.2016
Сообщений: 41
1

Посчитать количество будних дней между двумя датами

10.05.2017, 15:12. Просмотров 1511. Ответов 5
Метки нет (Все метки)

Подскажите, возможно ли как то подсчитать количество будних дней между двумя датами не создавая никаких дополнительных таблиц? Задача состоит в том, чтобы выводить записи, у которых текущая дата больше даты записи (date) на 10 дней.
id date
1 2017-05-01
2 2017-05-02
Пробовал вот так:
MySQL
1
2
3
4
5
SELECT d,count(*)
FROM ttt
WHERE dayofweek(d) not in (6,7)
and to_days(curdate())-to_days(d))>=10
group by d
но этот запрос просто убирает записи с датами, которые равны субботе и воскресению и считает неверно (:
Так-то вроде все просто, но в тоже время сложно.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.05.2017, 15:12
Ответы с готовыми решениями:

Узнать количество рабочих дней между двумя датами
Приведите пример пожалуйста

Число дней между двумя датами
Искал ,искал я в интернете как же вычислить число дней между двумя полями, так ничего и не нашел....

Посчитать количество дней между двумя датами
Вот до чего додумалась, поправте пж Тоесть в первой части выражения получаю количество секунд от...

Посчитать количество дней между двумя датами
читал на форуме похожие темы, даже нашел целый код, но он мне кажется мудреным, да и использовать...

5
35 / 33 / 9
Регистрация: 27.10.2015
Сообщений: 115
10.05.2017, 16:05 2
SQL
1
SUM(CASE WHEN dayofweek(d) IN (6,7) THEN 0 ELSE 1 END)
1
1037 / 854 / 334
Регистрация: 08.12.2016
Сообщений: 3,283
10.05.2017, 16:27 3
Цитата Сообщение от spu164 Посмотреть сообщение
Задача состоит в том, чтобы выводить записи, у которых текущая дата больше даты записи (date) на 10 дней
и при чем здесь рабочие/нерабочие дни? или 10 дней это на самом деле 10 рабочих дней ?
упроститься до 14 календарных дней нельзя?
0
0 / 0 / 1
Регистрация: 05.07.2016
Сообщений: 41
11.05.2017, 07:25  [ТС] 4
Dshedoo, спасибо за ответ, но выражение
MySQL
1
SUM(CASE WHEN dayofweek(d) IN (6,7) THEN 0 ELSE 1 END)
количество посчитало также как
MySQL
1
count(*)
YuryK, потому что мне нужно вывести больше 10 именно будних дней (с Пн по Пт), не считая субботу и воскресение.

Добавлено через 5 минут
Хм...сейчас взял календарь и посчитал, а ведь действительно по дням получается всегда также, что 10 будних дней, что 14 с выходными. Не знаю насколько это правильный вариант, но вроде мне подходит
0
1037 / 854 / 334
Регистрация: 08.12.2016
Сообщений: 3,283
11.05.2017, 07:26 5
Цитата Сообщение от spu164 Посмотреть сообщение
нужно вывести больше 10 именно будних дней (с Пн по Пт), не считая субботу и воскресение.
между понедельником двухнедельной давности и понедельником этой недели прошло 14 календарных дней или 10 будних
между вторником двухнедельной давности и вторником этой недели прошло 14 календарных дней или 10 будних
...
между пятницей двухнедельной давности и пятницей этой недели прошло 14 календарных дней или 10 будних

Вопрос: чем 10 будних дней в запросе краше 14 календарных дней?
0
0 / 0 / 1
Регистрация: 05.07.2016
Сообщений: 41
11.05.2017, 11:56  [ТС] 6
YuryK, вопрос уже снят. Буду использовать 14 дней.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.05.2017, 11:56

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Посчитать количество дней между двумя датами
Где ошибки?#include <stdio.h> struct date { int day; int month; int year; } ...

Как лучше посчитать кол-во дней между двумя датами?
"10/12/1989" 23/02/2016" Как посчитать лучше кол-во дней между ними?

Количество дней между двумя датами
под спойлером метод определения: int d0 = new int {2013,2,17,0,0,0}; int d1 = new int...

Количество дней между двумя датами
Здравствуйте, у меня есть неполный код от задачи: Найти количество дней между двумя датами. можете...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.