







|
MySQL.RU - Webboard
Вернуться
Пересечение периодов (дат) (zaartix) 13/01/2006 - 13:03:54
Re: Пересечение периодов (дат) (Dinky) 13/01/2006 - 19:40:52
Re: Пересечение периодов (дат) (Salahatdin) 03/06/2010 - 13:13:28
Re: Пересечение периодов (дат) (Salahatdin) 24/03/2011 - 14:32:48
> Original message text:
> From: zaartix - 13/01/2006 - 13:03:54
> Subject:Пересечение периодов (дат)
> -----------------
> Подскажите плз как быть?
> таблица содержит грубо 2 поля - начало периода fromClock, конец периода toClock
> типы полей - оба date
> перед тем, как занести туда новую запись мне надо проверить не накладываются-ли периоды, тот, что собираюсь занести с каким-нибудь из тех, что уже есть
> я делаю так:
> select count(*) as num
> from table
> where ('$from'>=fromClock and '$from'<=toClock) or ('$to'>=fromClock and '$to'<=toClock) or ('$from'<=fromClock and '$to'>=toClock)
> т.е. считаю количество пересечений
>
> как мне вернуть те места, в которых идут пересечения, чтоб юзеру сказать, что с такими-то периодами проблемы?
>
> ну ес-но можно просто без count(*), но тогда он вернет все проблемные периоды, а некоторые из ниж могут в свою очередь быть вложениями друг в друга, соответственно и юзеру о них говорить не следует
>
> мне юзеру надо сказать, что типа на начало периода места заняты, или на конец периода, или посередине где-то. Вот собсна. Как узнать проблемный/ые?
>
From: Salahatdin - 24/03/2011 - 14:32:48
Subject:Пересечение периодов (дат)
-----------------
А что делать если:
[BeginDate1 - EndDate1] - первый диапазон
[BeginDate2 - EndDate2] - второй диапазон
[BeginDate3 - EndDate3] - третий диапазон
[BeginDate4 - EndDate4] - четвертый диапазон и т.д.
еще в базе множество записей у которых свой идентификатор
[ID1] [BeginDate1 - EndDate1] - первый диапазон
[ID1] [BeginDate2 - EndDate2] - второй диапазон
[ID1] [BeginDate3 - EndDate3] - третий диапазон
[ID1] [BeginDate4 - EndDate4] - четвертый диапазон
[ID2] [BeginDate1 - EndDate1] - первый диапазон
[ID2] [BeginDate2 - EndDate2] - второй диапазон
[ID2] [BeginDate3 - EndDate3] - третий диапазон
[ID2] [BeginDate4 - EndDate4] - четвертый диапазон
Хотелось бы видеть рабочий пример на MySql когда весь массив данных хранится в таблице с тремя полями
ID, BeginDate, EndDate а пересечение по каждому отдельному ID проверялось отдельно, особо не принципиально, если данные выгружаются в промежуточные таблицы, заранее огромный респект автору решения проблемы ))
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
38150
|
|