![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Всё тот же SQL [D6, Paradox]
Sheng © (2003-08-25 19:24:00)
Суть вот в чём: есть БД, в ней ключевые два поля - Дата и Время.
Как правильно составить SQL-запрос на выборку от такого-то дня столько то времени до другого дня другого времени. Пробовал SELECT .... (SELECT ....) .... - не работает.
Dred2k (2003-08-26 16:33:00) [1]
> stud © (26.08.03 15:38) [10]
Значит, хорошие тестовые данные придумал.
> от такого-то дня столько то времени до другого дня другого
> времени
А твой вариант отсечет все записи типа (Date1 > DateF < Date2), у которых время не попадет в интервал. Это неверно.
stud (2003-08-26 15:38:00) [2]
> Dred2k
специально проверил)) результат одинаковый.
Dred2k (2003-08-26 14:50:00) [3]
> stud © (26.08.03 10:28) [8]
Время нужно проверять только в пограничных значениях.
Иначе неправильно будет.
> Sheng © (26.08.03 10:13) [7]
> Так как всё-таки правильно написать и что правильно работать будет????
А проверить слабо? Или лень обуяла?
stud (2003-08-26 10:28:00) [4]
(DateF between :Date1 and :Date2)
and
(TimeF between :Time1 and :Time2)
еще меньше скобок))
Sheng (2003-08-26 10:13:00) [5]
> Fay (25.08.03 20:16) [5]
Тут я, тут.
> to ALL
Так как всё-таки правильно написать и что правильно работать будет????
Dred2k (2003-08-25 20:49:00) [6]
(DateF between :Date1 and :Date2)
and
((DateF <> :Date1) or (TimeF >= :Time1))
and
((DateF <> :Date2) or (TimeF <= :Time2))
Вроде, скобок немного ;)
Fay (2003-08-25 20:16:00) [7]
2 Dens
>> Может, конечно скобок и много, но зато понятно
Их не многовато - они там вАщЕ не нужны.
Хотя, кому-то, быть может, так понятнее. Быть может.
2 Sheng
Ты где? Ку-ку!
Dens (2003-08-25 20:00:00) [8]
Fay (25.08.03 19:38) [2]
1) Может, конечно скобок и много, но зато понятно.
2) Согласен. Дал не верный пример.
В случае 12:00:00 отберет все записи, у которых время,
будет в промежутке от 00:00:00 до 12:00:00, не зависимо от даты.
Fay (2003-08-25 19:40:00) [9]
2 Sheng
В рагадохе при можно складывать дату с временем?
Если да, то если результатом сложения будет дата_время, то
сравнивай суммы даты.
Fay (2003-08-25 19:38:00) [10]
2 Dens
1) Так писать нормально?i := ((2*3)*(4*5));
2) В случае 12:00:00 вместо 23:59:59 что будет?
Dens (2003-08-25 19:32:00) [11]
Sheng © (25.08.03 19:24)
Если не ошибаюсь, то так:
SELECT * FROM <TABLE>
WHERE ((ADATE>="01.01.2003") AND (ATIME>="00:00:00")) AND
((ADATE<="31.01.2003") AND (ATIME<="23:59:59"))