Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];

Вниз

Выбор всех значений, которые принадлежат интервалу времени   Найти похожие ветки 

 
DelphiN! ©   (2006-02-02 09:59) [0]

Есть таблица, с полями
|Вряемя начала|  |Время окончания|
1)  01.01.06 10:30      01.01.06 10.40
2)  01.01.06 10:00      01.01.06 11:40
3)  01.01.06 12:00      01.01.06 22:00

Как выбрать записи, которые входят в промежуток от 01.01.06 10:00 до  01,01,06 10:50, тоесть записи 1,2

Чегото я сам сообразить не могу ...


 
Fay ©   (2006-02-02 10:03) [1]

> тоесть записи 1,2
Т.е. записи, для которых выполняется
 where [Вряемя начала] between "01.01.06 10:00" and "01.01.06 10:50"

Так что ли?


 
ЮЮ ©   (2006-02-02 10:14) [2]

2)  01.01.06 10:00      01.01.06 11:40
не "входит в промежуток", а пересекает его

входит ли в промежуток
4)  01.01.06 09:30      01.01.06 10:10 ?
4)  01.01.06 09:30      01.01.06 11:00 ?

Если да, то

 NOT ( ([Время окончания]  < :From)  OR  ([Вряемя начала]  > :To) )
что эквивалентно
   ([Время окончания]  >= :From)  AND  ([Вряемя начала]  <= :To) )

где :From и :To - заданный период


 
Fay ©   (2006-02-02 10:17) [3]

2 ЮЮ ©   (02.02.06 10:14) [2]
Пересекает, это когда хотя бы одна из дат лежит в заданном диапазоне


 
Sergey13 ©   (2006-02-02 10:22) [4]

where (:From between [Вряемя начала] and |Время окончания|)
OR (:To between [Вряемя начала] and |Время окончания|)
OR ((:From<[Вряемя начала]) and (:To>[Вряемя окончания]))


 
Val ©   (2006-02-02 10:24) [5]

>[1] Fay ©   (02.02.06 10:03)
к этому, наверное, нужно еще и третье условие, что
"Время начала" <= "Времени окончания"


 
Fay ©   (2006-02-02 10:28) [6]

2 Val ©   (02.02.06 10:24) [5]
Ага, а ещё типы данных должны быть совместимыми 8)


 
Fay ©   (2006-02-02 10:31) [7]

2 Sergey13 ©   (02.02.06 10:22) [4]
Я бы сказал
where
 ([Вряемя начала] between :From and :To)
 or ([Время окончания] between :From and :To)


 
Val ©   (2006-02-02 10:37) [8]

>[6] Fay ©   (02.02.06 10:28)
ээ..:) я имел ввиду не поля таблицы, а задаваемые параметры :)


 
Fay ©   (2006-02-02 10:42) [9]

2 Val ©   (02.02.06 10:37) [8]
> я имел ввиду не поля таблицы, а задаваемые параметры :)
А в этом как раз нет никакой необходимости, мы считаем разработчика человеком психически здоровым. 8)


 
ЮЮ ©   (2006-02-02 10:45) [10]


> Fay ©   (02.02.06 10:17) [3]



> Пересекает, это когда хотя бы одна из дат лежит в заданном
> диапазоне


А где лежит вторая - не важно. У автора во второй записи |Время окончания| лежит далеко за пределами заданного интнрвала, но она его интересует, хотя он называет такое положение вещей  "входят в промежуток"


 
Nikolay M. ©   (2006-02-02 10:58) [11]


> 2)  01.01.06 10:00      01.01.06 11:40
>
> Как выбрать записи, которые входят в промежуток от 01.01.
> 06 10:00 до  01,01,06 10:50, тоесть записи 1,2


Вторая "запись" не входит в этот промежуток. Хотелось бы заслушать от докладчика, что он подразумевает под "вхождением" интервалов.


 
Val ©   (2006-02-02 10:59) [12]

[7] Fay ©   (02.02.06 10:31)
а почему or, а не and? ведь автор хочет, чтобы обе даты входили в заданный промежуток.


 
Fay ©   (2006-02-02 11:02) [13]

2 ЮЮ ©   (02.02.06 10:45) [10]
См. [1]

2 Val ©   (02.02.06 10:59) [12]
> а почему or, а не and? ведь автор хочет, чтобы обе даты входили в заданный промежуток.
Из чего это следует?


 
Val ©   (2006-02-02 11:16) [14]

ок. ждем поправок автора.


 
DelphiN! ©   (2006-02-02 11:17) [15]

Извеняюсь за не точность, я хочу чтобы интервал не входил в промежуток полнойстю, а хотябы касался его, 1-я запись входит в промежуток полнойстю, а вторая входит в промежуток лишь частично, поэтому она и попала под условие, 3-я же запись никак не касается промежутка, потому под условие она не подошла.


 
ЮЮ ©   (2006-02-02 11:18) [16]


> Fay ©   (02.02.06 11:02) [13]
> См. [1]

Так в [1] твои предположения.

Пока автор не скажет, нужны ли ему записи,
A) со временем окончания в интервале, а со временем начала - раньше начала интервала
Б)  со временем начала - раньше начала интервала, и со времением окончания - позже конца  интервала

точное услови написать невозможно.


 
Плохиш ©   (2006-02-02 11:20) [17]


> DelphiN! ©   (02.02.06 11:17) [15]

(<Вряемя начала> <= :TO) and (<Время окончания> >= :FROM)


 
DelphiN! ©   (2006-02-02 11:26) [18]


>  [17] Плохиш ©   (02.02.06 11:20)


Действительно, вроде так. У меня голова просто раскалывается, температура, и сам сообразить просто не могу :(


 
ЮЮ ©   (2006-02-02 11:26) [19]


> Плохиш ©   (02.02.06 11:20) [17]


Уже было в [2]. Требуются оригинальные версии :)


 
DelphiN! ©   (2006-02-02 11:32) [20]


>  [19] ЮЮ ©   (02.02.06 11:26)


И вам спасибо, на обед сходил а тут уже столько написали за это время, вот и заметил последнего :)



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.035 c
1-1140595655
Zhekson
2006-02-22 11:07
2006.03.26
Как считать содержимое ячейки DBGrid?


9-1126637331
Ricks
2005-09-13 22:48
2006.03.26
Столкновения


4-1135966030
Dark Lord
2005-12-30 21:07
2006.03.26
Как удалить шрифт из системы по его названию?


15-1141150109
strannik-ivan
2006-02-28 21:08
2006.03.26
dll+потоки


15-1141323235
Desdechado
2006-03-02 21:13
2006.03.26
Что-то с форумом...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский