powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Циклический запрос к БД
10 сообщений из 10, страница 1 из 1
Циклический запрос к БД
    #39308875
dimon-hacker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, уважаемые форумчане.
Вопрос в следующем
имеется таблица с правилами для создания расписания.
фото прикреплено
Правила таковы:
имеется время начала работы, время конца работы, рабочий интервал, и перерывы
Можно ли средствами MySQL получить список доступного времени который входит в рабочее время с учетом перерывов? Или это лучше запрограммировать во внешнем приложении?
Список доступного времени на выходе примерно такой
8:00;
8:15;
...
11:45;
13:00;
....
19:45
...
Рейтинг: 0 / 0
Циклический запрос к БД
    #39308971
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, можно.
dimon-hackerфото прикрепленоПо фотографии не лечим. Показывайте DDL таблицы и пример наполнения в форме INSERT INTO.
...
Рейтинг: 0 / 0
Циклический запрос к БД
    #39309002
dimon-hacker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
Таблица заполняется из внешней проги, запрос добавления
string.Format("insert into ris.device_work_sched values({0},{1},'{2}','{3}','{4}',{5},'{6}','{7}',{8});", 0, id_app, start_time, end_time, work_interval, isActive, service_time, name, day_of_week);
Те значения которые не в апострофах - INT , остальные - VARCHAR
...
Рейтинг: 0 / 0
Циклический запрос к БД
    #39309023
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По фотографии не лечим .
...
Рейтинг: 0 / 0
Циклический запрос к БД
    #39309028
dimon-hacker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
Вот дамп таблицы
...
Рейтинг: 0 / 0
Циклический запрос к БД
    #39309045
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А просто выложить очищенный от хлама дамп не судьба?
вот так, например
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
CREATE TABLE `device_work_sched` (
  `id` int(11),
  `id_app` int(11),
  `start_time` varchar(5),
  `end_time` varchar(5),
  `work_interval` varchar(5),
  `is_active` tinyint(4),
  `service_time` varchar(150),
  `uid` varchar(50),
  `day_of_week` int(1),
  PRIMARY KEY (`id`),
  UNIQUE KEY `Unique` (`id_app`,`day_of_week`)
);

INSERT INTO `device_work_sched` (`id`, `id_app`, `start_time`, `end_time`, `work_interval`, `is_active`, `service_time`, `uid`, `day_of_week`) VALUES
	(16, 9, '08:00', '15:00', '00:15', 0, '10:00-11:10;', 'conquest', 1),
	(18, 9, '08:00', '15:00', '00:30', 1, '09:00-09:10;', 'conquest', 2),
	(19, 6, '08:00', '20:00', '00:30', 1, '12:00-14:00;', 'conquest', 3),
	(22, 9, '08:00', '20:00', '00:30', 1, '', 'conquest', 7),
	(23, 9, '08:00', '20:00', '00:30', 1, '14:00-16:00;16:35-17:00;18:30-18:40;18:50-19:00;', 'conquest', 3),
	(44, 9, '08:00', '20:00', '00:30', 1, '14:00-16:00;16:35-17:00;', 'conquest', 6),
	(75, 7, '10:00', '20:00', '00:10', 0, '13:00-14:00', 'conquest', 1),
	(76, 7, '10:00', '20:00', '00:10', 0, '13:00-14:00', 'conquest', 2),
	(77, 1, '08:00', '20:00', '00:15', 1, '12:00-13:00;15:00-19:00;', 'conquest', 1),
	(78, 1, '08:00', '20:00', '00:15', 1, '12:00-13:00', 'conquest', 2),
	(79, 1, '08:00', '20:00', '00:15', 1, '12:00-13:00', 'conquest', 3),
	(80, 1, '08:00', '20:00', '00:15', 1, '12:00-13:00', 'conquest', 4),
	(81, 1, '08:00', '20:00', '00:15', 1, '12:00-13:00', 'conquest', 5),
	(97, 9, '08:00', '20:00', '00:30', 1, '14:00-16:00;17:00-18:00;', 'conquest', 4),
	(98, 9, '08:00', '20:00', '00:30', 1, '', 'conquest', 5),
	(133, 4, '10:00', '20:00', '00:30', 1, '10:30-11:00;12:30-13:00;15:30-16:00;', 'conquest', 1),
	(134, 4, '10:00', '20:00', '00:20', 1, '10:05-13:00;', 'conquest', 2),
	(184, 8, '10:00', '14:00', '00:10', 1, '', 'conquest', 1),
	(185, 8, '10:00', '14:00', '00:10', 1, '', 'conquest', 4);


Первый же вопрос: такая [censored] структура - догма, или можно её изменить? Хранение CSV-мультизначений в поле service_time очень усложнит запрос.
И второй: все значения времени такие "кратные", или возможны любые значения?
...
Рейтинг: 0 / 0
Циклический запрос к БД
    #39309055
dimon-hacker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Таблица еще в разработке, поэтому можно менять, хотя и придется переписывать некоторые куски кода уже заточенные под нее.
Время может быть любым кратным рабочему интервалу, который !=0 и < 3 часов
...
Рейтинг: 0 / 0
Циклический запрос к БД
    #39309059
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimon-hackerТаблица еще в разработке, поэтому можно менять
Настоятельно рекомендую вынести service_time в отдельную таблицу и поделить на два поля (начало и конец). Упростишь себе жизнь в разы.
Также рекомендую завести служебную таблицу (в этой или служебной БД) с INT от 0 до, скажем, 99. Проще использовать готовую, чем генерить её в рантайме в запросе. А она потребуется.
...
Рейтинг: 0 / 0
Циклический запрос к БД
    #39309071
dimon-hacker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Насчет сервис тайма согласен, ведь решение сделать ее мультизначной пришло уже после того как большая часть программы была написана, поэтому просто добавили в нее значения. Думаю придется править код...
А насчет от 0 до 99 пока не врубился для чего? Видимо чтобы циклом бегать?
...
Рейтинг: 0 / 0
Циклический запрос к БД
    #39309093
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimon-hackerА насчет от 0 до 99 пока не врубился для чего?
У тебя стоИт задача генерации нескольких значений по формуле
start_time + N * delay_time
Можно, конечно, замутить цикл в процедуре, но гораздо проще в запросе брать значения N из готовой таблицы.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Циклический запрос к БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]