![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 13.12.2008
Сообщений: 75
|
![]()
Здравствуйте!
Подскажите, пожалуйста, нужно составить запрос параметрический, чтобы вводить дату и выводились все записи с этой датой.Но проблема в том, что указывать нужно только дату, а в таблице поле имеет еще и время, и поэтому запрос не работает. Как вывести все записи указанной даты с любым временем? |
![]() |
![]() |
![]() |
#2 |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
![]()
Напрямую зависит от конкретной рассматриваемой СУБД.
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 13.12.2008
Сообщений: 75
|
![]()
СУБД Access
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 11.03.2011
Сообщений: 426
|
![]()
Два параметра: один на начало дня, а другой на окончание того же дня с ключевым словом BETWEEN
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 13.12.2008
Сообщений: 75
|
![]()
datetimepicker.datetime+00:00:00 или как?
|
![]() |
![]() |
![]() |
#6 |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
![]()
Универсальное решение:
DateFrom := StrToDate('15.03.11'); DateTo := DateFrom + 1; Текст парам.запроса: bla-bla-bla WHERE DateTimeField >= :DateFromParam and DateTimeField < :DateToParam |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 13.12.2008
Сообщений: 75
|
![]()
день выбирается через datetimepicker, и как это записать? например, начало дня, datetimepicker.datetime+00:00:00 или как?
|
![]() |
![]() |
![]() |
#8 |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
![]()
MyQuery.SQL.Text := 'bla-bla-bla WHERE DateTimeField >= :DateFromParam and DateTimeField < :DateToParam';
DateFromParam := DateTimePicker.Date; DateToParam := DateFromParam + 1; MyQuery.ParamByName('DateFromParam' ).Value := DateFromParam; MyQuery.ParamByName('DateToParam'). Value := DateToParam; |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 11.03.2011
Сообщений: 426
|
![]()
Я использую следующее: DateUtils.RecodeTime(DateTime, 0, 0, 0, 0) и DateUtils.RecodeTime(DateTime, 23, 59, 59, 0) соответственно.
Миллисекундами умышленно пренебрегаю. Простая добавка одного дня, к сожалению, не является удачным решением, так как в период попадут данные следующего дня, если время в дате будет отсутствовать (для других БД это вполне может быть, равно как и для Вашего случая при прямой записи в БД даты с очищением времени) |
![]() |
![]() |
![]() |
#10 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]() Цитата:
Jene4ka а это из принципа один и тот же топик в течении 20 минут ПЯТЬ раз создать на форуме?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 15.03.2011 в 23:17. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Параметрический запрос | Tomatos | БД в Delphi | 26 | 24.11.2010 13:09 |