проверка столкновения дат между начальной и конечной датой (столбец БД имеет даты начала и окончания) - PullRequest
1 голос
/ 29 октября 2011

Нужна помощь по SQL (запрос MySQL), чтобы проверить, что выбранные 'startdate' и 'enddate' не имеют записей в этом диапазоне.

ниже моя таблица:

---------------------------------------------------------
| id |    start           |     end            |activity|
---------------------------------------------------------
| 1  |2011-10-30 13:00:00 |2011-10-30 14:00:00 | study  |
| 2  |2011-10-30 15:00:00 |2011-10-30 16:00:00 | tennis |
| 3  |2011-10-30 17:00:00 |2011-10-30 18:00:00 | golf   |
| 4  |2011-10-30 18:00:00 |2011-10-30 19:00:00 | gym    |
| 5  |2011-10-30 20:00:00 |2011-10-30 21:00:00 | study  |
---------------------------------------------------------

Я надеюсь, что этот пост будет полезен и для других. Начальный и конечный столбцы относятся к типу данных datetime. В основном запрос, который я пытаюсь сделать, - это проверка на конфликт действий.

нужна помощь. СпасибоВы заранее.

1 Ответ

1 голос
/ 29 октября 2011

По сути, вам нужно посмотреть, находится ли начальная или конечная дата одной записи в начальной и конечной датах другой строки. Я сделал это с INNER JOIN. Вы также можете сделать это с помощью предложения WHERE'.

Select [your fields]
From table t1
           Inner join table t2
           On t1.id <> t2.id
               And (( t1.start > t2.start
                    And t1.start < t2.end)
                     Or
                    (t1.end > t2.start
                    And t1.end < t2.end))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...