Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выборка SQL по полю даты 
V
    Опции темы
Falkon
Дата 20.6.2006, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 24.5.2006

Репутация: нет
Всего: нет



Кто нибудь может мне показать как выбрать записи по полю типа DateTime. по текстовым и числовым полям у меня нормально выбирает записи, а по дате не хочет пишет либо ошибка синтаксиса если я пишу так: 20.06.2006, а если я пишу:20/06/2006 то запрос выполняется, но данных не находит, хотя у меня несколька полей подходящих условию. Пишу запрос: SELECT * FROM MyBase WHERE Dt=20.06.2006 я вот незнаю может там необходимо указать параметр какойто или ещё чо 
PM MAIL   Вверх
comtat
Дата 20.6.2006, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

Репутация: 1
Всего: 71



А у тебя в таблице данные как выглядят так 20/08/2006 или так 20.08.2006??
Обычно как мне встречалась всегда 2006.08.20

Код

SELECT * FROM MyBase WHERE Dt=Date_Format('2006.08.20', '%y-%m-%d');
   

используй Date_Format  

Это сообщение отредактировал(а) comtat - 20.6.2006, 12:24


--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
skyboy
Дата 20.6.2006, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



comtat, кажись, ты хотел написать так:
Код

SELECT * FROM MyBase WHERE Dt=Date_Format('2006.08.20', '%y.%m.%d');

smile 
PM MAIL   Вверх
bas
Дата 20.6.2006, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 446
Регистрация: 14.8.2002
Где: Молдова, Кишинев

Репутация: 1
Всего: 2



А что за БД? 
PM MAIL   Вверх
Alex
Дата 20.6.2006, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 17
Всего: 162



http://vingrad.ru/DELPHI-DLP-001473
http://vingrad.ru/DELPHI-DLP-001424
http://vingrad.ru/DELPHI-DLP-002580
comtatskyboy вам тоже полезно будет почитать  

Это сообщение отредактировал(а) Alex - 20.6.2006, 15:02


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
skyboy
Дата 20.6.2006, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



Alex, я понял намёк smile Но в данном случае функция Date_Format  - это SQL функция, выполняемая на стороне сервера(я, например, на MySQL ориентировался; о каком СУБД думал comtat, я не знаю), которая парсит строку в соотвествии с шаблоном и преобразует результат в DataTime-тип. Правда, я попутал. В MySQL такая функция называется "Str_to_Date" и имеет всё те же два агрумента: строка и формат.  
PM MAIL   Вверх
Falkon
Дата 20.6.2006, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 24.5.2006

Репутация: нет
Всего: нет



база написана в Аксесе 
PM MAIL   Вверх
comtat
Дата 21.6.2006, 07:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

Репутация: 1
Всего: 71



skyboy, спасибо за поправку я это и имел в виду.
Alex, я опирался на функции MySql'я.

Пример даты в студию  smile 
  

Это сообщение отредактировал(а) comtat - 21.6.2006, 07:53


--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
Alex
Дата 21.6.2006, 08:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 17
Всего: 162



comtat, skyboy вам тоже полезно будет почитать. После ваших ответов я бы сказал обязательно к прочтению
Falkon, я думаю ответ на свой вопрос вы нашли по приведенным ссылкам выше, если нет, то скажите какими компонентами доступа пользуетесь. 


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
bas
Дата 21.6.2006, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 446
Регистрация: 14.8.2002
Где: Молдова, Кишинев

Репутация: 1
Всего: 2



Цитата(Falkon @  20.6.2006,  15:26 Найти цитируемый пост)
база написана в Аксесе  

Насколько помню дата в нем заключаеться в ## 
PM MAIL   Вверх
Falkon
Дата 21.6.2006, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 24.5.2006

Репутация: нет
Всего: нет



все у меня получилось, но... этот запрос выполняется один раз. Я создал параметр в ADOQuery с типом DateTime и к его значению Value присваиваю переменную с датой, а потом в запросе пишу имя параметра как переменную. этот запрос отлично выполняется ровно один раз, потом либо выводит пустую таблицу либо выдает ошибку, она звучит примерно так: "ненайден параметр par1 (у меня так параметр называется)" 
PM MAIL   Вверх
comtat
Дата 21.6.2006, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

Репутация: 1
Всего: 71



Запрос в студию  


--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
Savek
Дата 21.6.2006, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 10.4.2006
Где: Воронеж

Репутация: 7
Всего: 7



А лучше все манипуляции с ADOQuery в студию 
PM MAIL   Вверх
Falkon
Дата 21.6.2006, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 24.5.2006

Репутация: нет
Всего: нет



да пожалуйста
strSQL:='SELECT Fam, Im, Otch, Gr, Dt, NomZad, TipZad, Oper, Zad, Popitka, Itog FROM MyBase WHERE ';
Формирование запроса:
case vib of
 1:strPole:='fam';
 2:strPole:='Gr';
 3:strPole:='Dt';
end;
strKrit:=edFilter2.Text;
ser.Q.Close;
if vib <> 3 then
 strSQL:=strSQL+strPole+'='+''''+strKrit+''''+' and '
else
begin
 q.Parameters.ParamByName('par1').Value:=StrToDate(strKrit);
 strSQL:=strSQL+strPole+'=:par1 and ';

запуск запроса:
ser.Q.Close;
ser.Q.SQL.Clear;
strSQL:=copy(strSQL,1,length(strSQL)-5);
ser.Q.SQL.Append(strSQL);
ser.Q.Open;
strSQL:='SELECT Fam, Im, Otch, Gr, Dt, NomZad, TipZad, Oper, Zad, Popitka, Itog FROM MyBase WHERE '; 
PM MAIL   Вверх
Savek
Дата 21.6.2006, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 10.4.2006
Где: Воронеж

Репутация: 7
Всего: 7



Не понятно почему он первый раз работает...
Насколько я помню порядок должен быть такой

With AdoQuery1 do begin
    SQL.Clear;
    SQL.Text:='что то с параметром';
    Parameters.ParamByName('par1').Value:=Value;
    Open;
end;

А у тебя значение параметра присваивается до того как он создан,
поэтому он и не найден

PS Куда подвалась кнопка Kod 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0540 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.