Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.041 c
8-1131566457
[dvs]digiman
2005-11-09 23:00
2006.04.16
Aero Glass эффект


2-1144097894
Eugem
2006-04-04 00:58
2006.04.16
Как добавить обработчик события и само событие?


6-1136026685
ezorcist
2005-12-31 13:58
2006.04.16
Настлоение строк


15-1143189547
Alarm
2006-03-24 11:39
2006.04.16
Ограничение на количество подключений


2-1143644448
Fl@sh
2006-03-29 19:00
2006.04.16
TMemoryStream TidTCPClient..server





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский