Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.16;
Скачать: CL | DM;

Вниз

как выбрать 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.035 c
2-1143709295
dera
2006-03-30 13:01
2006.04.16
Как "угадать" разрешение экрана пользователя


2-1144071645
KyRo
2006-04-03 17:40
2006.04.16
На следующую итерацию


2-1143925921
AlexeyT
2006-04-02 01:12
2006.04.16
Установить шрифт при печати


15-1143021838
Nsk3D
2006-03-22 13:03
2006.04.16
Шрифты.создание.модификация.


15-1143440230
Ega23
2006-03-27 10:17
2006.04.16
С Днём рождения! 27 марта