![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как правильно написать дату в запросе? [D5, dBase, FoxPro]
coba © (2003-02-07 15:58:00)Уважаемые мастреа, как правильно в SQL запросе написать дату??
просто
Select *
From Table
WHERE date="01.01.2003" не проходит, говорит тип не соответствует... как строку перевести в DateTime?
Динамически в запрос подставлять ничего не нужно...
sniknik (2003-02-07 21:32:00) [1]трабла с тобой, если у всех работает а у тебя нет, и единственное что от тебя слышиш "не работает" без всяких подробностей (может уже доперло? работает, но не признаешся по причине дебильности ошибки?).
хотя если действительно ради прикола ....
coba (2003-02-07 19:37:00) [2]Anatoly Podgoretsky © ,AM
Поле типа DATE
кроме как datetime ничего признавать не хочет, сама (как в MSSQL) в datetime не конвертирут, короче бог с ней... я уже забил почти на траблу...
Anatoly Podgoretsky (2003-02-07 19:34:00) [3]А может у тебя вообще поле не типа Date, ты смотрел в Database Desktop?
И давай точное сообщение об ошибке, а вроде бы мало подходит.
Ответственнее надо относиться к вопросу в форуме или ты просто, чтобы посмеяться?
AM (2003-02-07 19:22:00) [4]Я честно говоря не знаю какие типы полей есть у dBase, но например у MSSQL есть типы полей связанные с датой:
1)datetime
2)smalldatetime
ну и еще есть там
3)timestamp (но это не в счет)
Если у dBase тоже есть такие типы, попробуй поварьируй измени тип поля у таблицы (предварительно конечно зарезервируй БД).
Просто все что тебе посоветовали, хоть один должен прокатить.
coba (2003-02-07 19:07:00) [5]sniknik ©
Я вроде сказал, говорит что тип не тот что нужен...
sniknik (2003-02-07 18:52:00) [6]а хотя бы что говорит, ошибку, мог привести?
coba (2003-02-07 18:49:00) [7]sniknik ©
Нет, я сперва попробовал по всякому, а потом на форум полез...
Простой стринг не проходит - говорит тип данных не тот, если поставить "01.01.2003" тоже не проходит...
проходит только если дату поставить в ее нормальном виде, т.е. к примеру 37561...
sniknik (2003-02-07 18:42:00) [8]и первым же ответом, был правильный
Danilka © (07.02.03 16:03)
попробуй вот так:
WHERE date="01.01.2003"
для локал SQL (BDE) еще раз повторюсь, для ADO + Jet или ODBC - VFoxpro - MSdBase - .... для когото может быть неправильно. (ADO это тоже не последний способ)
результат вместо конкретного описания, бессмысленная полемика. если у тебя Local SQL то и первый вариант прошол бы (ну может день и месяц поменял бы) и CAST работал бы.
Значит чтото другое, или обманываеш.
coba (2003-02-07 18:27:00) [9]sniknik ©
СУБД и версия дельфи указаны в названии топика...
Как правильно написать дату в запросе? [D5, dBase, FoxPro]
sniknik (2003-02-07 18:20:00) [10]ты что думаеш SQL он один на всех? наивный.
и дельфи подключается по разному и к разным драйверам. и в зависимости от драйвера/способа все может 1000 раз поменятся. а вот этой важной инфы ты не предоставил, в результате никакого результата.
где ты пишеш о своей СУБД? и драйвере. А то может только я не заметил.
coba (2003-02-07 18:06:00) [11]sniknik ©
Я из дельфей запросы делаю...
На сколько я понимаю, какие SQL команды поддерживает СУБД, те команды и проходят...
фокс не понимает CAST, в запросе который я вставляю из дельфи, на CAST реакция отрицательная...
sniknik (2003-02-07 18:04:00) [12]в ФОКСЕ формат дат {23/1/1998} (американский)
sniknik (2003-02-07 17:56:00) [13]> fox Cast не понимает
хочеш сказать что все время про фокс говорил? то есть не из дельфей а из фокса проверяеш? !!!!!!
ну, ну а где это в вопросе стоит? тебе всеотвечают по дельфям Local SQL.
coba (2003-02-07 17:55:00) [14]Ладно, всем спасибо за ответы, ну его этот фокс вместе с дбейсом...
coba (2003-02-07 17:52:00) [15]Max Zyuzin ©
дата на компе у меня dd.mm.yyyy, дело не в формате представления даты и времени а в том, почему в запрос нельзя просто поставить дату, обязательно нужно подставлять ее в формате datetime...
сорри за задержку...
coba (2003-02-07 17:42:00) [16]sniknik ©
fox Cast не понимает...
стрингу брать не хочет... короче ну его ...
пусть ест сконвертрованные вручную даты...
sniknik (2003-02-07 17:32:00) [17]coba (07.02.03 17:24)
в локал SQL CAST заместо
хелп
SELECT SaleDate,
SUBSTRING(CAST(CAST(SaleDate AS DATE) AS CHAR(10)) FROM 1 FOR 1)
FROM Orders
sniknik (2003-02-07 17:30:00) [18]ну м не менее перебери варианты. (зависит от настроек твоеймашины, модет день и месяц поменять)
хелп
Example of a date literal in a US format:
SELECT *
FROM Orders
WHERE (SaleDate <= "1/23/1998")
Example of the same date literal in a European format:
SELECT *
FROM Orders
WHERE (SaleDate <= "23.1.1998")
Leading zeros for the month and day fields are optional.
If the century is not specified for the year in a date value, the BDE settings FOURDIGITYEAR and YEARBIASED control the century of the date.
coba (2003-02-07 17:24:00) [19]Reals ©
Говорит что не знает функцию CONVERT
coba (2003-02-07 17:18:00) [20]sniknik ©
пробовал - не работает...