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

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

Как преобразовать дату в формате dd.mm.yyyy в формат dd/mm/yyyy? [D5, Access]


Rusty ©   (2004-07-19 12:53:00) 

Уважаемые, HELP!
Как преобразовать дату в формате dd.mm.yyyy в формат dd/mm/yyyy?
База Access почему-то не воспринимает дату в формате dd.mm.yyyy.


DSKalugin   (2004-07-19 16:31:00) [1]

пропиши в нонце основного модуля
initialization
 DateSeparator:='/';
 ShortDateFormat:='dd/mm/yyyy';
end.


Vit@ly   (2004-07-19 15:13:00) [2]

DateSeparator в win.ini
Или через настройки:
Язык и стандарты - Дата


Vit@ly   (2004-07-19 15:13:00) [3]

DateSeparator в win.ini
Или через настройки:
Язык и стандарты - Дата


Соловьев   (2004-07-19 13:56:00) [4]


> с удовольствием почитаю!


with ADODataSet do
begin
if Active then Close;
CommandText:='SELECT * FROM Table WHERE Date>=#'+FormatDateTime('mm/dd/yyyy',DateTime_var)+'#';
Open;
end;

Ивсе таки параметры


Rusty   (2004-07-19 13:52:00) [5]

-->Johnmen

Тоже вариант, но я, дабы не мучиться, добавил такую функцию:

function EditDate (Date: TDateTime) : string;
var
 Year, Month, Day: Word;
begin
 DecodeDate(Date, Year, Month, Day);
 Result:='#'+VarToStr(Month)+'/'+VarToStr(Day)+'/'+VarToStr(Year)+'#';
end;

Криво, но работает.
Всем спасибо, а если есть у кого другие соображения, - с удовольствием почитаю!


Johnmen   (2004-07-19 13:45:00) [6]

>Rusty   (19.07.04 13:17) [6]

В таких случаях обычно используют параметр-флажок.
WHERE ((1=:FBeg) AND (MyDate>=:DateBeg)) OR ((1=:FEnd) AND (MyDate<=:DateEnd))


Rusty   (2004-07-19 13:27:00) [7]

-->Соловьев
 > addSQL:='#01.01.2004#';

Это тоже пригодилось, т.к. запрос работает правильно только в таком случае:


...
addSQL:='#07/19/2004#';
with ADODataSet do
begin
if Active then Close;
CommandText:='SELECT * FROM Table WHERE Date>='+addSQL;
Open;
end;
...


Теперь мне надо привести дату к формату #MM/DD/YYYY# - еще лучше!


HSolo   (2004-07-19 13:24:00) [8]

Можно и NULL - "в зависимости от ситуации" (с)


Rusty   (2004-07-19 13:17:00) [9]

Нет, через параметр не подойдет. У меня 2 даты и одна из них может не использоваться (в зависимости от ситуации). Что тогда мне передать в параметр отсутствующей даты? NULL?


Johnmen   (2004-07-19 13:09:00) [10]

А через параметр не хочешь ?


HSolo   (2004-07-19 13:09:00) [11]

А запрос с параметром не подойдет?


Соловьев   (2004-07-19 13:06:00) [12]


>
> addSQL:='01.01.2004';

addSQL:='#01.01.2004#';
кажысь так


Rusty   (2004-07-19 13:01:00) [13]

Пытаюсь выполнить запрос:


...
addSQL:='01.01.2004';
with ADODataSet do
begin
 if Active then Close;
 CommandText:='SELECT * FROM Table WHERE Date>='+addSQL;
 Open;
end;
...


Ошибка!


Соловьев   (2004-07-19 12:55:00) [14]


> База Access почему-то не воспринимает дату в формате dd.mm.yyyy.

Подробнее


> Как преобразовать дату в формате dd.mm.yyyy в формат dd/mm/yyyy?

FormatDateTime, Date-Time Format Strings + F1


Наверх

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