Форум: "Базы";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
Внизкак выбрать Select с таблицой DataTime ? Найти похожие ветки
← →
dreamse (2006-02-21 13:08) [0]пишу запрос :
select * from Statistic
where DateStat = "21.02.2007 00:00:00"
Выдаёт :
The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value
Как сделать Select на поле DateTime ? Если я пеердаю только дату
← →
Sergey13 © (2006-02-21 13:11) [1]Через параметры.
← →
dreamse (2006-02-21 13:22) [2]> Sergey13 © (21.02.06 13:11) [1]
Через какие ?
Не понял
← →
Плохиш © (2006-02-21 13:25) [3]Parameters + F1
← →
dreamse (2006-02-21 13:34) [4]Разобрался , дело в том что MS SQL прелбразует формат DateTime
Вот этот код работает :
select * from Statis_ping
where Dateping = "Feb 21 200"
← →
msguns © (2006-02-21 13:36) [5]>dreamse (21.02.06 13:34) [4]
>Вот этот код работает :
Так писать нельзя. Хотя бы потому, что неграмотно.
← →
dreamse (2006-02-21 13:39) [6]> msguns © (21.02.06 13:36) [5]
нет , оказываеться не работает , работает только когда поле Dateping являеться типом varchar а если это тип DataTime то не работает ...
В чём проблема ?
← →
stone © (2006-02-21 13:42) [7]Проблема в неверном преобразовании даты, что ты сам привел в сабже.
если уж ты ни в какю не хочешь пользоваться параметрами, то пишиset dateformat dmy select * from Statistic where DateStat = "21.02.2007 00:00:00"
Хотя это скорее вредный совет, но полезным ты сам воспользоваться не пожелал...
← →
Johnmen © (2006-02-21 13:42) [8]Проблема в нежелании [3]
← →
dreamse (2006-02-21 13:52) [9]> stone © (21.02.06 13:42) [7]
Спасибо , на досуге посмотрю параметры.. но просто пока некогда , нужно срочно писать код , всем спасибо
← →
msguns © (2006-02-21 13:55) [10]>dreamse (21.02.06 13:39) [6]
>В чём проблема ?
Проблема в том, что разные компоненты доступа, "движки" и сервера (именно в такой последовательности происходит "стандартная" передача данных от программы к Базе Данных) по-разному "воспнринимают" дату.
В частности, для ADO+Jet (судя по упоминанию MS SQL) вполне приемлима такая форма:
"Select ... where Fdate="+DateToStr(<Дата>)
Однако для другого случая такой код "вылетит". Для обеспечения независимости программы от причуд и особенностей СУБД и придумали параметры. Их основной задачей и достоинством является то, что компонент доступа, имеющий соотв.св-во (Params,Parameters...), умеет "переводить" дату из "паскального" (программного) типа в формат, понятный движку и в конечно счете серверу.
Во избежание дальнейших "плюх" в работе с разными БД рекомендуют использовать параметрические запросы, для чего надо просто один раз разобраться с механизмом и синтаксисом параметров.
О чем здесь и говорилось с самого начала (см. [1])
← →
msguns © (2006-02-21 14:00) [11]Пример параметрического запроса в ADO:
with ADOQuery1 do
begin
SQL.Clear;
SQL.Text := "SELECT * FROM MYTABLE WHERE Name=:pn AND FDate=:dt"
Parameters.ParamByName("pn").Value := "dreams";
Parameters.ParamByName("dt").Value := DateToStr(dt1);
Open;
end;
← →
Плохиш © (2006-02-21 14:11) [12]
> но просто пока некогда , нужно срочно писать код
Гы, сына, ЛОЛ (c) ЮЗ
PS. Озвучте организацию, где платят за глючный и неработающий код, и расценки то же, пожалуйста. Может работодателя сменю :-)
← →
dreamse (2006-02-21 14:18) [13]> Плохиш © (21.02.06 14:11) [12]
> Озвучте организацию
Shareware
Софт пишеться от души , продаёться без проблем , но иногда встречаються ситуации когда время до выпуска новой вресии или патча минимальны ... и главное чтобы работало
← →
Sergey13 © (2006-02-21 14:23) [14]2[13] dreamse (21.02.06 14:18)
> но иногда встречаються ситуации когда время до выпуска новой вресии или патча минимальны ...
Не мудрено с таким то подходом. 8-)
"И тут Остап понял - сейчас начнут бить" (с) 12 стульев
← →
Johnmen © (2006-02-21 14:33) [15]>продаёться без проблем ,
Однокурсникам впариваешь?
← →
msguns © (2006-02-21 15:10) [16]>dreamse (21.02.06 14:18) [13]
>... и главное чтобы работало
Свежо предание.. но верится с трудом (c) ;)
← →
parovoZZ © (2006-02-21 19:13) [17]Даже я, самый тупой на этом форуме, с параметрами разобрался за 5 минут.
А была такая же ерунда, когда надо было просто считать текст из Edit-а, а оно не работало.
Правда в книжке было написано, что параметры надо прописывать в свойствах ADOQuery на этапе разработки (дизайн тайм гы). Поначалу я так и делал. Но потом пришлось очистить директорию, где валялся проект, от лишних файлов. И как-то открываю инспектор объектов, залезаю в параметры, чтобы прописать ещё один...а там пусто. Однако. Добавил параметр от потолка, компилирую, запускаю на трассировку...а оно работает. ))
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.037 c