Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2010, 21:20   #1
Explosion
Пользователь
 
Регистрация: 08.11.2008
Сообщений: 50
По умолчанию Запрос по дате

Всем привет. БД на sql. Запрос таков: человек вводит начальную дату и конечную дату, и результатом выводятся все записи с датами в указанном промежутке. Поля в таблицы, где хранятся даты типа Varchar. А в приложении даты отображаются в Edit'ах и у дат тип DataTime.
Подскажите пожалуйста текст условия в запросе после "where", чтоб выводились записи в указанном промежутке дат.
Explosion вне форума Ответить с цитированием
Старый 02.06.2010, 03:41   #2
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Можно перевести значение даты в текстовое:
Код:
select * from table where data beetween ' + QuotedStr(Edit1.Text) + ' and ' + QuotedStr(Edit2.Text);
Как-то так.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 02.06.2010, 09:10   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Explosion
Поля в таблицы, где хранятся даты типа Varchar
ну и кто такую фигню придумал?!!
изменить на нормальный тип нельзя?

Цитата:
БД на sql.
имеется в виду MS SQL ?
тогда я бы попробовал так
Код:
Query1.Close;
Query1.SQL.Text := 'select * from table '+
 ' where cast (ВашеПолеCДатой as datetime) between :pDate1 and :pDate2 ';
Query1.Parameters.ParamByName('pDate1').Value:=DateTimePicker1.Date;
Query1.Parameters.ParamByName('pDate2').Value:=DateTimePicker2.Date;
Query1.Open;
p.s. если среди хранимых в поле [B]ВашеПолеCДатой/B] значений есть пустые строчки или какой-нибудь мусор (не дата) запрос выдаст ошибку, разумеется!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.06.2010, 18:22   #4
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

Цитата:
Сообщение от Explosion Посмотреть сообщение
где хранятся даты типа Varchar
У тебя все выборки и все сортировки будут корявые и тебе долго придется бороться с этим пока не поймешь что надо было вместо varchar пользовать DateTime.
Лучше если есть возможность сразу сделать так как надо.
Ну или пользовать преобразование для MySQL.
STR_TO_DATE(Твое поле типа varchar,'%d.%m.%Y').
date_format(значение типа DateTime , '%d.%m.%Y')
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос по дате DaMadQuest SQL, базы данных 0 06.04.2010 17:37
Запрос по дате program123 БД в Delphi 4 17.03.2010 19:53
Запрос по дате ННС Помощь студентам 4 20.04.2009 19:30
Запрос по дате календаря ННС Помощь студентам 2 30.03.2009 16:46
SQL Запрос по дате SERG1980 БД в Delphi 4 16.03.2009 14:04