![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
запрос с датой и временем [D7, FB1.5]
Цукор5 © (2007-06-05 09:23:00)Господа,имею таблицу в которой есть поля с датой и временем.
Нужно выполнить отчет и отобрать записи скажем с 01.06.07 00:00 по 04.06.07 00:00.
Соответственно, если сделать так :
select * from таблица where поле_с_датой between :da1 and :da2 and поле_со_временем between :ti1 and :ti2
То,естественно ничего не выбирается, по причине того, что время 00:00.
Какие будут предложения ?
Спасибо !
(2007-06-18 14:53:00) [1]Удалено модератором
(2007-06-12 16:16:00) [2]Удалено модератором
Johnmen (2007-06-05 20:08:00) [3]Будет. Читай TDateTime + F1.
Цукор5 (2007-06-05 20:05:00) [4]2 Johnmen © (05.06.07 19:57) [11]
Пардон. Оказывается нужно указывать не Value,а AsDateTime.
С AsDateTime все заработало.
Последний вопрос...или скажите какой хелп читать. Существует ли привязка формата даты\времени ? Будет ли работать запрос, если изменю формат даты\времени в системе ?
Цукор5 (2007-06-05 20:01:00) [5]2 Johnmen © (05.06.07 19:57) [11]
>А вот так: Int(Picker1.Date)+Frac(Picker2.Time)
не помогло.
>Когда начнешь хелп читать?
Дык...надо ж определиться за какой хелп браться за FB или Delphi.
Johnmen (2007-06-05 19:58:00) [6]
> Цукор5 (05.06.07 19:52) [10]
Когда начнешь хелп читать?
Johnmen (2007-06-05 19:57:00) [7]Нет, не так.
А вот так: Int(Picker1.Date)+Frac(Picker2.Time)
Цукор5 (2007-06-05 19:52:00) [8]2 Правильный Вася (05.06.07 18:56) [9]
Понял,спасибо. Тогда еще вопрос. Какой должен быть формат даты/времени в системе ? Как уйти от формата в системе...ибо он может быть разный у всех.
К чему я это спрашиваю. В IbExpert запрос выполняется,а у моем приложении нет.
Правильный Вася (2007-06-05 18:56:00) [9]Picker1.Date+Picker2.Time
Цукор5 (2007-06-05 18:48:00) [10]Хорошо, а если использовать специальный тип даты/времени. Понятно, что запрос будет проще и логичней. Но как тогда объединить TDateTimePicker ? Ведь их по 2 будет...для даты и времени.
Что тут (IbSQL1.ParamByName('da1').Value = ???)писать ?
sniknik (2007-06-05 12:10:00) [11]> Если важно, то его рассматривать только на крайнмх дня интервала, а для внутренних поле времени опять не важно.
3 три условия вместо одного?...
с большой вероятностью сделать логическую ошибку, как [0] например... возможно. (не объяснено чего делается запросом, и если там именно попытка выбора интервала, логический глюк с неполучением части данных уже есть)
можно, если выбора нет, как в парадокс (кстати в 7-м вроде есть, такой тип. (?)), но если выбор есть?
ЮЮ (2007-06-05 11:39:00) [12]> если нет то операцию условия делать над обьединенной датой
> и временем в датавремя.
Ну не обязательно. (В Paradox-е, кстати, дата и время разные типы, хотя оба и соответствуют TDateTimeField). Если вреия в поиске неважно, то и на поля не обращать внимание. Если важно, то его рассматривать только на крайнмх дня интервала, а для внутренних поле времени опять не важно.
sniknik (2007-06-05 11:32:00) [13]> Какие будут предложения ?
использовать поле датавремя.
если база твоя и можно менять, если нет то операцию условия делать над обьединенной датой и временем в датавремя. (и забыть об использовании индексов в подобном запросе...)
Krants (2007-06-05 11:23:00) [14]хотя нет брешу, можно и так
if dat1="ноль" then
параметр[dar1].value:='01/01/0100'
min и max даты у разных баз отличается...
Krants (2007-06-05 11:17:00) [15]тож хотел бы узнать...
сам, в таком случае, не использую параметры:
if dat1<>00:00 then
sql:='select * from таблица where поле_с_датой > '+dat1
Desdechado (2007-06-05 11:14:00) [16]Если время всегда 00:00, то достаточно обойтись датой.
ЮЮ (2007-06-05 09:34:00) [17]>есть поля с датой и временем.
А типы этих полей какие?
Специальный тип даты/времени не использовал по религиознвм причинам?