powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / [SQL]Пересечение временных интервалов
3 сообщений из 3, страница 1 из 1
[SQL]Пересечение временных интервалов
    #38351646
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
Есть простая табличка, состоящая их 3 полей ( например программа передач ):
Код: sql
1.
title, begin, end


т е название, начало, окончание

нужно удалить программы в табличке, которые подпадают под заданный интервал (A,B) ( т е даже часть передачи ). Достаточно ли след sql запроса ( и правилен ли он ):

Код: sql
1.
delete from table where begin between A and B or end between A and B ?
...
Рейтинг: 0 / 0
[SQL]Пересечение временных интервалов
    #38351668
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЯЕсть простая табличка, состоящая их 3 полей ( например программа передач ):
Код: sql
1.
title, begin, end


т е название, начало, окончание

нужно удалить программы в табличке, которые подпадают под заданный интервал (A,B) ( т е даже часть передачи ). Достаточно ли след sql запроса ( и правилен ли он ):

Код: sql
1.
delete from table where begin between A and B or end between A and B ?



Запрос правильный, но логика неверна. Если интервал, когда надо удалить с 10:00 до 10:30, а передача идёт с 9:30 до 10:50, то такая передача удалена не будет. Временные интервалы пересекаются тогда, когда конечная точка одного интервала находится внутри другого:
Код: sql
1.
delete from `table` where B between `begin` and `end` or `end` between A and B


где B > A и `end` > `start`. :)
Кстати, обратные кавычки не забываем, а то Ваш запрос может с резервированными словами конфликтировать (типа begin, end, table)
...
Рейтинг: 0 / 0
[SQL]Пересечение временных интервалов
    #38352229
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я,
1.На всякий случай, посмотрите:
http://www.sql.ru/forum/450374/peresechenie-diapazonov-dat

2.Никогда не называйте поля словами, хотя бы отдаленно напоминающими резервированные слова.
Хорошая идея, названия полей составлять из двух слов:
на выбор:
broadcasttimebegin - broadcasttimeend
broadcasttime1 - broadcasttime2
bt1 - bt2
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / [SQL]Пересечение временных интервалов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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