Форум: "Базы";
Текущий архив: 2004.12.26;
Скачать: [xml.tar.bz2];
Внизустановка формата даты Найти похожие ветки
← →
WellSlava (2004-11-26 14:13) [0]В MS SQL устанавливаю формат даты:
Set DateFomat dmy... пишет, что все выполнено, пытаюсь вводить данные в этом формате - ошибка преобразования... Select выдает тоже в старом формате. что это может быть?
← →
Fay © (2004-11-26 14:18) [1]BOL->convert
← →
WellSlava (2004-11-26 14:24) [2]нет.. зачем мне конвертить. Мне надо настроить так как мне надо. Или MS SQL этого не умеет делать? Я просто с ним общаюсь всего неделю.
← →
Fay © (2004-11-26 14:33) [3]Вы, видимо, не очень хорошо представляете себе, что такое "отображение данных". Формат самой даты не имеет ничего общего с тем, что Вы хотите увидеть на экране.
← →
Anatoly Podgoretsky © (2004-11-26 14:56) [4]Зависит от того где вводишь, это же не действует глобально. Если надо другой формат, глобального действия то нужно установить сервер с нуля, если для отдельного пользователя, то надо ему установить формат, если для сессия, то тоже в соответственно. А твой вопрос некорректо поставлен, поскольку неизвестно где ты это делаешь и в каком контексте.
← →
WellSlava (2004-11-26 15:36) [5]иными словами на клиенте я в соответствующий параметр записываю дату в нашем родном формате - "25.11.2004". Выдает ошибку "Syntax error converting datetime from character string."
← →
paul_k © (2004-11-26 15:44) [6]на клиенте где?
образец такого присваивания можно?
сервер справедливо пишет что полю типа datetime ты пыитаешся присвоить символьное значение.
← →
Ega23 © (2004-11-26 17:09) [7]WellSlava (26.11.04 15:36) [5]
DateTimeToString(aDate,""{ts""" yyyy-mm-dd hh:nn:ss""" }"",i);
← →
Fay © (2004-11-26 21:51) [8]2 WellSlava (26.11.04 15:36) [5]
Пиши в его родном формате - "20041125"
← →
WellSlava (2004-11-28 19:42) [9]код:
qModify.ParamByName("Begin_Date").asDate := edtDate.Date;
и вот на это ругается...
← →
WellSlava (2004-11-28 19:44) [10]а формат даты (dmy) нужен на всю базу данных...
Как его установить?
← →
Term (2004-11-28 20:21) [11]
> Set DateFomat dmy...
кажется это нужно указывать в каждом запросе, так как эта установка действует для конкретного запроса
← →
paul_k © (2004-11-28 20:26) [12]Не знаю, может я не прав, но в таких случаях пишу иначе
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
← →
sniknik © (2004-11-28 20:55) [13]> и уже в процедуре перевожу в datetime
"замечательная" идеология! ;) перевести дату в строку чтобы после перевести в дату...
> код:
> qModify.ParamByName("Begin_Date").asDate := edtDate.Date;
> и вот на это ругается...
подозреваю что на несоответствие типов... (ну тут уж, сам спутал - сам дурак)... а так, идея верная.
> а формат даты (dmy) нужен на всю базу данных...
> Как его установить?
именно так как у тебя в вопросе...
только ошибку ты скорее всего еще в дельфях получаеш, т.к. формат отображения/преобразований даты из строки в MSSQL может не совпадать с дельфевым...
да и не нужно это, оперируй датами а не их образами в строке.
← →
paul_k © (2004-11-29 11:57) [14]sniknik © (28.11.04 20:55) [13]
>> и уже в процедуре перевожу в datetime
> "замечательная" идеология! ;) перевести дату в строку
> чтобы после перевести в дату...
Да нет.. Усер вводит тоже в строке по 3-му формату.
Преобразования приведены применительно к данному примеру.
← →
sniknik © (2004-11-29 13:40) [15]в примере ты из Now (дататайм) делаеш строку, а даже если и ввод строкой, не лутше ли преобразовать на месте на клиенте с полным контролем а не посылать на сервер вероятно неверную строчку? (ну ошибся юзер, с кем не бывает)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.12.26;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.038 c