![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Формат даты в запросах [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;