![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
установка формата даты [D7, MSSQL]
WellSlava © (2004-11-26 14:13:00)В MS SQL устанавливаю формат даты:
Set DateFomat dmy... пишет, что все выполнено, пытаюсь вводить данные в этом формате - ошибка преобразования... Select выдает тоже в старом формате. что это может быть?
sniknik (2004-11-29 13:40:00) [1]в примере ты из Now (дататайм) делаеш строку, а даже если и ввод строкой, не лутше ли преобразовать на месте на клиенте с полным контролем а не посылать на сервер вероятно неверную строчку? (ну ошибся юзер, с кем не бывает)
paul_k (2004-11-29 11:57:00) [2]sniknik © (28.11.04 20:55) [13]
>> и уже в процедуре перевожу в datetime
> "замечательная" идеология! ;) перевести дату в строку
> чтобы после перевести в дату...
Да нет.. Усер вводит тоже в строке по 3-му формату.
Преобразования приведены применительно к данному примеру.
sniknik (2004-11-28 20:55:00) [3]> и уже в процедуре перевожу в datetime
"замечательная" идеология! ;) перевести дату в строку чтобы после перевести в дату...
> код:
> qModify.ParamByName('Begin_Date').asDate := edtDate.Date;
> и вот на это ругается...
подозреваю что на несоответствие типов... (ну тут уж, сам спутал - сам дурак)... а так, идея верная.
> а формат даты (dmy) нужен на всю базу данных...
> Как его установить?
именно так как у тебя в вопросе...
только ошибку ты скорее всего еще в дельфях получаеш, т.к. формат отображения/преобразованийдаты из строки в MSSQL может не совпадать с дельфевым...
да и не нужно это, оперируй датами а не их образами в строке.
paul_k (2004-11-28 20:26:00) [4]Не знаю, может я не прав, но в таких случаях пишу иначе
var
str: TStrings;
DSep : char;
..............................
dSep:=DateSeparator;
DateSeparator:='/';
str:=qXXX.SQL;
qXXX.SQL.Text:='Update Table'+#13+
' set bDate = convert(datetime,'+QuotedStr(FormatDateTime('dd/mm/yy', Now))+',3)'+#13+
'where bla bla bla' ;
qXXX.ExecSQL;
qXXX.SQL:=str;
DateSeparator:=dSep;
Но чаще все изменения делаю в хранимых процедурах. Параметром передаю строку даты в третьем формате (дд/мм/гг) и уже в процедуре перевожу в datetime
Term (2004-11-28 20:21:00) [5]
> Set DateFomat dmy...
кажется это нужно указывать в каждом запросе, так как эта установка действует для конкретного запроса
WellSlava (2004-11-28 19:44:00) [6]а формат даты (dmy) нужен на всю базу данных...
Как его установить?
WellSlava (2004-11-28 19:42:00) [7]код:
qModify.ParamByName('Begin_Date').asDate := edtDate.Date;
и вот на это ругается...
Fay (2004-11-26 21:51:00) [8]2 WellSlava (26.11.04 15:36) [5]
Пиши в егородном формате - '20041125'
Ega23 (2004-11-26 17:09:00) [9]WellSlava (26.11.04 15:36) [5]
DateTimeToString(aDate,'"{ts''" yyyy-mm-dd hh:nn:ss"'' }"',i);
paul_k (2004-11-26 15:44:00) [10]на клиенте где?
образец такого присваивания можно?
сервер справедливо пишет что полю типа datetime ты пыитаешся присвоить символьное значение.
WellSlava (2004-11-26 15:36:00) [11]иными словами на клиенте я в соответствующий параметр записываю дату в нашем родном формате - '25.11.2004'. Выдает ошибку "Syntax error converting datetime from character string."
Anatoly Podgoretsky (2004-11-26 14:56:00) [12]Зависит от того где вводишь, это же не действует глобально. Если надо другой формат, глобального действия то нужно установить сервер с нуля, если для отдельного пользователя, то надо ему установить формат, если для сессия, то тоже в соответственно. А твой вопрос некорректо поставлен, поскольку неизвестно где ты это делаешь и в каком контексте.
Fay (2004-11-26 14:33:00) [13]Вы, видимо, не очень хорошо представляете себе, что такое "отображение данных". Формат самой даты не имеет ничего общего с тем, что Вы хотите увидеть на экране.
WellSlava (2004-11-26 14:24:00) [14]нет.. зачем мне конвертить. Мне надо настроить так как мне надо. Или MS SQL этого не умеет делать? Я просто с ним общаюсь всего неделю.
Fay (2004-11-26 14:18:00) [15]BOL->convert