Поиск даты в нескольких диапазонах дат

Статус
В этой теме нельзя размещать новые ответы.

Droy

Новичок
Здравствуйте.
Столкнулся со следующей проблемой: у меня есть произвольный список дат.
А-ля: 28.12.10, 04.01.11 -> 25.02.11, 16.05.11 -> 05.09.11, 20.10.11
Т.е. если одно число, то через запятую, если диапозон, то через "->".
Эту дату мне нужно занести в ячейку в таблице (делаю я это, для примера, в CHAR типе).
Потом, мне необходимо узнать, присутствует ли выбранная дата (например: 20.08.11) в ячейке? по диапазону (16.05.11 -> 05.09.11) видим, что присутствует. Но как быть с запросами из базы? Как лучше всего хранить эти даты, т.к. их может быть произвольное кол-во диапазонов и "единичных" чисел? И как проверить, присутствует ли дата N в ячейке?
Своих мыслей куча, но все немного не так выходит, поэтому буду благодарен любой помощи!
 

prolis

Новичок
1. сделать табличку с полями data_start,date_end (типа Date)
2. если дата одна - то в оба поля заносится эта дата
3. если период - то в соответвующие столбцы
4.Выборка where '$date' between data_start and date_end
 
  • Like
Реакции: Droy

Активист

Активист
Команда форума
Кореша?
http://phpclub.ru/talk/threads/Подсчет-времени-и-даты.66498/

Что за дебильные задачи? Вы там новый 2012 изобретаете?
> Своих мыслей куча, но все немного не так выходит
Анекдот про напильник знаешь? Вот выкрали янки чертежи истребитителя - собрали - паровоз, разобрали собрали - паровоз, выкрали русского конструктора, закрыли в ангаре, через неделю заходят - истребитель))
Вот и у тебя, чертежи есть, а все тоже самое - паровоз.
 

Droy

Новичок
1. сделать табличку с полями data_start,date_end (типа Date)
2. если дата одна - то в оба поля заносится эта дата
3. если период - то в соответвующие столбцы
4.Выборка where '$date' between data_start and date_end
Логично. Отдельно таблицу. Правда записей куча может быть, если диапозонов дат много :( Но да ладно, это самое эффективное решение. Спасибо.
 

Droy

Новичок
Кореша?
http://phpclub.ru/talk/threads/Подсчет-времени-и-даты.66498/

Что за дебильные задачи? Вы там новый 2012 изобретаете?
> Своих мыслей куча, но все немного не так выходит
Анекдот про напильник знаешь? Вот выкрали янки чертежи истребитителя - собрали - паровоз, разобрали собрали - паровоз, выкрали русского конструктора, закрыли в ангаре, через неделю заходят - истребитель))
Вот и у тебя, чертежи есть, а все тоже самое - паровоз.
Ссылка - бред.
Ваше сообщение - аналогично.
Даже проблемы не поняли, еще и нахамили.
 

Активист

Активист
Команда форума
Вместо того, что бы жалобы писать, попробуем излагать задачу ясно.

A. Ответь на несколько вопросов
1. Что у тебя за задача?
2. Что такое unix timestamp?
3. Как сравнить два целочисленных числа между собой?

Б. Что у тебя было и что у тебя есть - это разные вещи. Твой вопрос такой-же как у твоего коллеги.
1. Название темы: Поиск даты в нескольких диапазонах дат
Начало темы:
Столкнулся со следующей проблемой: у меня есть произвольный список дат.
А-ля: 28.12.10, 04.01.11 -> 25.02.11, 16.05.11 -> 05.09.11, 20.10.11
Т.е. если одно число, то через запятую, если диапозон, то через "->".
Эту дату мне нужно занести в ячейку в таблице (делаю я это, для примера, в CHAR типе).
Потом, мне необходимо узнать, присутствует ли выбранная дата (например: 20.08.11) в ячейке? по диапазону (16.05.11 -> 05.09.11) видим, что присутствует.
1. Как это относится к поиску дат - не понятно.
2. Нам также не интересно знать, что у тебя там за строка, и почему она у тебя такая дебильная.

> И как проверить, присутствует ли дата N в ячейке?
В какой ячейке? Общества?

Решить уравнение (а точнее вставить это в запрос where, при этом сделав поле хоть INT, хоть date) - задача 3-го класса.
Задача: Верно ли выражение 20101228 ≤ x ≤ 20101231, при x = 20101229 ?

Ну и еще:
Будет ли верно выражение x-20101228 ≥ 0 && 20101231-x ≥ 0 при x равному 20101229.
 
  • Like
Реакции: craz

baev

‹°°¬•
Команда форума
Поля «date_from» и «date_to». Тип полей — DATE (или DATETIME)
И никаких «через "->"».
 

Droy

Новичок
Использовалась всего одна таблица для записи неопределенного кол-ва дат и диапазон дат.
Вопрос в себе подразумевал: возможно ли использовать одну таблицу в данном случае или нет?

Что за неадекватная реакция? Не нравится отвечать на "дебильные" сообщения - не отвечайте. Считаете "дебильным" - оставьте свое мнение при себе. Что за хамство?
Закройте тему, пожалуйста.
 

Активист

Активист
Команда форума
Слушай, когда саморезы с гвоздями мешаешь (данные) в одной коробке - время на поиск самореза увеличивается? Не проще ли взять еще одну коробку и разделить саморезы и гвозди?
Так и в твоем случае - ты можешь хранить смешанные данные хоть в одной таблице, но лучше - разделять. И еще раз - описывай задачу или конкретную проблему, без абстракций, возможно, решение совсем другое.

Кстати, про две таблице в теме
"Поиск даты в нескольких диапазонах дат" ни слова :)))))

Пожалуйста, тему закрыл :)
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху