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