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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.10.2012, 11:32   #11
ins813
Форумчанин
 
Регистрация: 18.05.2012
Сообщений: 111
По умолчанию

нет, теперь я поменял тип поля Date на Date и формат изменился на yyyy/mm//dd (2012-10-01)
ins813 вне форума Ответить с цитированием
Старый 03.10.2012, 11:40   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну вот... а я только хотел предложить решение через convert:
Код:
convert(datetime, replace(date,',','.'), 104) as realdate
Цитата:
поменял тип поля Date на Date и формат изменился на yyyy/mm//dd (2012-10-01)
это абсолютно неважно, как выглядит!
проверяйте теперь свой код из пост #1
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.10.2012, 11:47   #13
ins813
Форумчанин
 
Регистрация: 18.05.2012
Сообщений: 111
По умолчанию

(1) 03.10.2012 11:47 от ins813
Всем большое спасибо проблема решилась, тип поля изменил на Date.

(2) 03.10.2012 11:47 от ins813
Последнее хотел спросить каким типом должно быть поле в SQL если нужно чтобы числа 001,002,0005 и тд сохранялись именно в этом виде ?


(3) 03.10.2012 12:59 от ins813
Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
ну вот... а я только хотел предложить решение через convert:
Код:
convert(datetime, replace(date,',','.'), 104) as realdate
Спасибо, конечно, а можно по-подробнее про конвертацию, мало ли пригодится ?




_________________
Не используйте форум как чат - не пишите несколько коротких сообщений подряд!
Есть что добавить - нажимайте кнопку "Правка/Редактировать" на своём крайнем сообщении
и изменяйте, добавляйте....
Прошу учесть на будущее...

Модератор.

Последний раз редактировалось Serge_Bliznykov; 03.10.2012 в 13:06.
ins813 вне форума Ответить с цитированием
Старый 03.10.2012, 13:12   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Последнее хотел спросить каким типом должно быть поле в SQL если нужно чтобы числа 001,002,0005 и тд сохранялись именно в этом виде ?
текстовое (varchar/char/nchar/nvarchar и т.п.)


Цитата:
Цитата:
Код:
convert(datetime, replace(date,',','.'), 104) as realdate
Спасибо, конечно, а можно по-подробнее про конвертацию, мало ли пригодится ?
дык. в этом уже и есть ответ на ваш вопрос.
ладно. поясню.
если поле в текстовом виде, а нужно, чтобы одно было в формате DateTime, тогда можно преобразовать (сконвертировать) его из одного вида в другой.
данная строчка сначала заменяет все запятые на точки, а потом, полученное выражение вида 'd.mm.yyyy' ковертирует в DateTime.
создайте в таблице поле, как у вас было раньше, типа varchar, запишите туда что-то вроде
1,05,2012
30,05,2012
и выполните запрос
Код:
select date,  convert(datetime, replace(date,',','.'), 104) from ВашаТаблица
увидите, что получается.

Подробнее читайте справку MS на команду convert
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.10.2012, 13:24   #15
ins813
Форумчанин
 
Регистрация: 18.05.2012
Сообщений: 111
По умолчанию

Serge_Bliznykov Спасибо Вам, понял. Но хотел бы снова задать вопрос про запрос. Поменял переменные в запросе, таблицы и БД и перед выводом этих данных в эксель ругается на ошибку :First chance exception at $75A6B727. Exception class EOleException with message 'Неправильный синтаксис около ключевого слова "BETWEEN"'. Process Project1.exe (2460).
Код:
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Text :='SELECT marka_avto,gnz_avto,npl,fio_vod,tn_vod,Vidano_litr,t_a FROM dbo.ved'
+ 'WHERE datvid BETWEEN :StartDate AND :FinishDate and t_a=:t_a';
ADOQuery1.Parameters.ParamByName('t_a').Value:=taa;
ins813 вне форума Ответить с цитированием
Старый 03.10.2012, 13:28   #16
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Код:
   ADOQuery1.SQL.Text :='SELECT marka_avto,gnz_avto,npl,fio_vod,tn_vod,Vidano_litr,t_a FROM dbo.ved'
+ 'WHERE
пробел потеряли
у вас получается строчка
SELECT marka_avto,gnz_avto,npl,fio_vod,tn_ vod,Vidano_litr,t_a FROM dbo.vedWHERE BETWEEN
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.10.2012, 13:45   #17
ins813
Форумчанин
 
Регистрация: 18.05.2012
Сообщений: 111
По умолчанию

Еще раз благодарю все работает кроме... , можно еще последний вопрос !? не работает сортировка по переменной - t_a , т.е выводит пустую таблицу ?
ins813 вне форума Ответить с цитированием
Старый 03.10.2012, 13:53   #18
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

во-первых, не надо "отбор" ("фильтрацию") данных называть "сортировкой" (сортировка - это упорядочивание данных).

Цитата:
Код:
ADOQuery1.Parameters.ParamByName('t_a').Value:=taa;
не работает сортировка по переменной - t_a , т.е выводит пустую таблицу ?
а во-вторых, ну, значит, то значение, которое Вы указали в переменной taa ОТСУТСТВУЕТ в исходной таблице!
Учтите, что если в таблице значение поля ВАСИЛИЙ, а вы, к примеру, ищите василий - то ничего не найдётся.

если, если Вы ищите BACИЛИЙ, тоже ничего не найдётся (первые три буквы в строке поиска - латиница).

или, если Вы ищите ВАСИ - то тоже ничего не найдётся при таком поиске..
разбирайтесь, что у Вас в таблице реально и что Вы реально там ищите!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.10.2012, 14:04   #19
ins813
Форумчанин
 
Регистрация: 18.05.2012
Сообщений: 111
По умолчанию

ок, спасибо, исправлюсь!
ins813 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Для public переменной класса присвоить адрес ячеек из внешней переменной _KUL Qt и кроссплатформенное программирование С/С++ 2 28.05.2012 12:04
Быстрая сортировка(сортировка Хоара). Сортировка фрагмента массива [C++] druger Помощь студентам 0 20.04.2012 15:49
Найти значение переменной y в зависимости от значения переменной х Rishi Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 11.05.2011 20:25
Имя переменной как переменная. Как получить доступ к такой переменной? Denni Microsoft Office Access 8 02.04.2009 10:06
Работа с файлами (создание, удаление, открытие, связываение с переменной, очищение памяти переменной) Arkuz Общие вопросы Delphi 12 25.09.2007 20:47