Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

HELP !!! Проблема со временем [D6, IB6.x]


Pavel_S ©   (2002-05-17 15:18:00) 

Если выполнять следующий запрос не из программы то все ок

select * from SP_EMPLOYEE_WITH_ACTIVE_CARDS("1/25/1995")

Если же я добавляю в SelectSQL IBDataSet, то происходит следующее: он воспринимает дату только в таком виде 25/1/1995,
хотя у меня региональные и языковые установки стоят на представление даты в виде дд/мм/гггг.
Как решить эту проблему ?


kaif   (2002-05-26 13:43:00) [1]

Нужно использовать форматы TDateTime или родное представление IB6.0 YYYY-MM-DD в виде строки. Иначе, если при сетевой работе региональные установки сервера и клиента не совпадут, то возникнут новые проблемы.


Pavel_S   (2002-05-25 16:38:00) [2]

Заработал этот код
...
DateSeparator :=".";
SHortDateFormat :="dd.MM.yyyy";
...


Hrul   (2002-05-22 17:13:00) [3]

Попробуй так:
var
t : TDateTime;
begin
t := ...
Query1.Close;
Query1.Clear;
Query1.Params.Clear;
Query1.SQL.Add("select * from SP_EMPLOYEE_WITH_ACTIVE_CARDS (:NEEDDATE)");
Query1.Params.ParamByName("NEEDDATE").AsDateTime := t;
Query1.Open;
...
end;
Пускай сама разбирается - она железная.




Johnmen   (2002-05-18 09:14:00) [4]

>Pavel_S © (18.05.02 07:37)
А подумать совсем неохота ?.....
см. Fay © (17.05.02 19:13)


Pavel_S   (2002-05-18 07:37:00) [5]

Но если я вместо / указываю . то происходит ошибка.

Может кроме ShortDateFormat есть еще и api функции для установки параметров даты ?


Fay   (2002-05-17 19:13:00) [6]

2kalinka Ваш пример на T-SQL. Нехорошо.

В IB разделитель является одним из признаков формата даты

т.е. "01.02.2002" <> "01/02/2002"
но "01.02.2002" = "02/01/2002"


kalinka   (2002-05-17 17:30:00) [7]

ой, ошибка convert (datetime, "25.01.1995", 104))

а еще можно так:

Select *
from SP_EMPLOYEE_WITH_ACTIVE_CARDS(
convert (datetime, FormatDateTime("dd.mm.yyyy", @MyDate, 104))


kalinka   (2002-05-17 17:27:00) [8]

Попробуй так:
select *
from SP_EMPLOYEE_WITH_ACTIVE_CARDS(convert (datetime, "01.25.1995", 104))


Val   (2002-05-17 17:03:00) [9]

а если прописавыть туда дату как параметр?


Pavel_S   (2002-05-17 16:54:00) [10]

к сожалению я это делал и это не работает.


asafr   (2002-05-17 16:49:00) [11]

В Sourse допиши:
uses
Forms,
SysUtils,
........
........

{$R *.RES}

begin
Application.Initialize;
DateSeparator :="/";
SHortDateFormat :="dd/mm/yyyy";
................................
................................
Application.Run;
end.


Наверх

Титульная страница Поиск, карта сайта Написать письмо