Як правильно написати дату в запиті?
Працювати з датою як з датою, через параметр
Select *
From Table
WHERE Table. "Date" =: mydate
І далі Query.ParamByName ( "mydate"). AsDate: = now;
ЗИ Раджу не називати поля і таблиці зарезервірованимі словами (date)
> Coba (07.02.03 16:12)
Параметром.
Поки написав в лоб. тобто дату в форматі дати :)
> Coba (07.02.03 16:23)
Справа в тому, що в тебе з таким підходом програма буде залежати від налаштувань OS який формат там стоїть такий тобі і треба писати запит, в загальному це фігово :) тому на різних тачках може і не працювати (через те, що я і написав).
> Coba (07.02.03 16:32)
Так ти запит до якої базі робиш? До фокспровой або до MSSQL.
coba (07.02.03 16:35)
якщо дати передаеш НЕ параметром, то будуть. не у тебе так у клієнтів.
> Coba (07.02.03 16:35)
Тади зроби таку штуку.
Label1.Caption: = DateToStr (now);
І в такому вигляді і забивай дату в запиті
на початку програми робиш ось так:
ShortDateFormat: = "dd.mm.yyyy";
тільки, все це якось некрасиво.
вибач не помітив
> Програма буде працювати тільки у мене.
тоді без різниці, настройки напевно однакові ставиш навіть якщо вінди переінсталіруеш.
> Coba (07.02.03 16:52)
Я тобі це написав тільки для того, що б ти дізнався як у тебе на комп'ютері дата сделоана, в сенсі який у неї формат, а запити ти вже будеш робити використовуючи цей формат. Все ж що у тебе видає?
в хелпе так написано.
ну м не менше перебери варіанти. (Залежить від налаштувань твоєї машини, модет день і місяць поміняти)
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
Гаразд, дякую всім за відповіді, ну його цей фокс разом з дбейсом.
> Fox Cast не розуміє
хочеш сказати що весь час про фокс говорив? тобто не з Дельфі а з фокса проверяеш.
ну, ну а де це в питанні варто? тобі все відповідають за Дельфах Local SQL.
ти що думаєш SQL він один на всіх? наївний.
і дельфи підключається по різному і до різних драйверів. і в залежності від драйвера / способу все може 1000 разів Поміняти. а ось цієї важливої інформації ти не надав, в результаті ніякого результату.
де ти пишеш про свою СУБД? і драйвер. А то може тільки я не помітив.
і першим же відповіддю, був правильний
для локал SQL (BDE) ще раз повторюся, для ADO + Jet або ODBC - VFoxpro - MSdBase -. для когось може бути неправильно. (ADO це теж не останній спосіб)
результат замість конкретного опису, безглузда полеміка. якщо у тебе Local SQL то і перший варіант прошол б (ну може день і місяць поміняв би) і CAST працював би.
Значить щось інше, або обманиваеш.
а хоча б що говорить, помилку, міг привести?
Я чесно кажучи не знаю які типи полів є у dBase, але наприклад у MSSQL є типи полів пов'язані з датою:
1) datetime
2) smalldatetime
ну і ще є там
3) timestamp (але це не береться до уваги)
Якщо у dBase теж є такі типи, спробуй поварьіруй зміни тип поля у таблиці (попередньо звичайно зарезервує БД).
Просто все що тобі порадили, хоч один повинен прокотити.
А може у тебе взагалі полі не типу Date, ти дивився в Database Desktop?
І давай точне повідомлення про помилку, а начебто мало підходить.
Відповідальніше треба ставитися до питання в форумі або ти просто, щоб посміятися?
крім як datetime нічого визнавати не хоче, сама (як в MSSQL) в datetime НЕ конвертірут, коротше бог з нею. я вже забив майже на трабли.
трабла з тобою, якщо у всіх працює а у тебе немає, і єдине що від тебе чуєш "не працює" без всяких подробиць (може вже доперло? працює, але не прізнаешся через дебільності помилки?).
хоча якщо дійсно заради приколу.