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

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

Формат даты в запросах [D6, MSSQL]


Oleg M ©   (2003-04-27 00:29:00) 

SQL Server 2000 (ADO), Delphi 6.

Как правильно вставлять дату в текст запроса ADOQuery?

Делаю так: "WHERE Date = """+ DateToStr(MyDateVar) +""""
при этом возникают проблемы (ругается сервер) с форматом даты. На разных серверах разные региональные настройки и приходится использовать ручное задание формата даты, свое для каждого сервера.

А как правильно?
Есть ли универсальный формат, понимаемый SQL сервером назвисимо от региональных настроек?
Можно ли запросить у сервера текущий формат или перезадать его на время выполнения запроса?


PS Пока приходится извращаться помещая обычные запросы в StoredProc и передавая даты через параметры.


АлексейК   (2003-04-28 04:34:00) [1]

>Делаю так: "WHERE Date = """+ DateToStr(MyDateVar) +""""
А лучше так "WHERE Date = """+ FormatDateTime("yyyy.mm.dd",MyDateVar) +""""


wicked   (2003-04-27 03:15:00) [2]


> А как правильно?
> Есть ли универсальный формат, понимаемый SQL сервером назвисимо
> от региональных настроек?

есть - "yyyy-mm-dd" или "yyyymmdd"....


Dok_3D   (2003-04-27 00:55:00) [3]

Правильно использовать запрос с параметрами.

ADOQuery.SQL.Clear;
ADOQuery.SQL.Add("SELECT ... FROM ... Where dtDate=:Date");
ADOQuery.Parameters.ParamByName("Date").DataType:=ftDateTime;
ADOQuery.Parameters.ParamByName("Date").DataType:=Now();
ADOQuery.Open;


Наверх

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