Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2008, 13:00   #1
xDjarx
Пользователь
 
Аватар для xDjarx
 
Регистрация: 22.04.2008
Сообщений: 16
По умолчанию Работа с датой

Помогите, не знаю как работать с датой. Не могу перенести программой из таблицы dbf дату в таблицу MySQL, вместо числа записывается ноль.
И ещё не получается выполнить SQL запрос с датой, подскажите как из Edit передать правильно дату в запрос для сервера MySql.
С обычными числами такая конструкция работает, а с датой нет.
Пишу так:
ZQuery4.SQL.Text:='SELECT chast_sek_gor.Name,chast_sek_gor.Po tr FROM chast_sek_gor WHERE chast_sek_gor.`Data`>'+(Edit2.Text) ;
xDjarx вне форума Ответить с цитированием
Старый 29.04.2008, 20:51   #2
Professor Hubert
Пользователь
 
Аватар для Professor Hubert
 
Регистрация: 29.03.2008
Сообщений: 35
По умолчанию

Лучше дату вводить не в Edit а хотябы в DateTimePicker1, на худой конец в MaskEdit.
С MySQL не работал, но думаю так должно получиться.

Код:
Query.Close;
Query.SQL.Clear;
Query.SQL.Add('SELECT * FROM main WHERE Data > :d');
Query.ParamByName('d').AsDateTime := DateTimePicker1.Date;
Query.Open;
Professor Hubert вне форума Ответить с цитированием
Старый 29.04.2008, 23:09   #3
xDjarx
Пользователь
 
Аватар для xDjarx
 
Регистрация: 22.04.2008
Сообщений: 16
По умолчанию

Большое спасибо за совет помогло.
xDjarx вне форума Ответить с цитированием
Старый 02.05.2009, 11:26   #4
Koter1984
Пользователь
 
Регистрация: 02.05.2009
Сообщений: 21
По умолчанию

Всем доброго времени суток!!!Помогите,пожалуйста!!!
procedure TForm1.N9Click(Sender: TObject);

begin
Form1.ADOQuery1.Active:=false;
Form1.ADOQuery1.SQL.Clear;
Form1.ADOQuery1.SQL.Add('SELECT *');
Form1.ADOQuery1.SQL.Add('FROM Resh');
Form1.ADOQuery1.SQL.Add('WHERE datakontrol<= '''+DateToStr(DateTimePicker1.Date) +'''');
Form1.ADOQuery1.Active:=true;
Form3.ShowModal;
end;
выдает ошибку несоответствие типов данных в выражении условия отбора

Последний раз редактировалось Koter1984; 02.05.2009 в 11:44.
Koter1984 вне форума Ответить с цитированием
Старый 02.05.2009, 12:01   #5
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Koter1984 Попробуйте так
Код:
begin
Form1.ADOQuery1.Active:=false;
Form1.ADOQuery1.SQL.Clear;
Form1.ADOQuery1.SQL.Add('SELECT *');
Form1.ADOQuery1.SQL.Add('FROM Resh');
Form1.ADOQuery1.SQL.Add('WHERE datakontrol<= #'+FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date)+'#');
Form1.ADOQuery1.Active:=true;
Form3.ShowModal;
end;
S@fer вне форума Ответить с цитированием
Старый 02.05.2009, 12:06   #6
Koter1984
Пользователь
 
Регистрация: 02.05.2009
Сообщений: 21
По умолчанию

Работает спасибо большое!!! а как сделать чтоб за несколько дней до контрольной даты ?
Koter1984 вне форума Ответить с цитированием
Старый 02.05.2009, 12:10   #7
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Цитата:
а как сделать чтоб за несколько дней до контрольной даты ?
Код:
begin
Form1.ADOQuery1.Active:=false;
Form1.ADOQuery1.SQL.Clear;
Form1.ADOQuery1.SQL.Add('SELECT *');
Form1.ADOQuery1.SQL.Add('FROM Resh');
Form1.ADOQuery1.SQL.Add('WHERE datakontrol<= #'+FormatDateTime('yyyy-mm-dd',IncDay((DateTimePicker1.Date),-1)+'#');
Form1.ADOQuery1.Active:=true;
Form3.ShowModal;
end;
IncDay("Дата",кол-во дней) - функция возвращает количество дней вперед или назад (цифры +/-)
IncMonth("Дата",кол-во месяцев) - функция возвращает количество месяцев вперед или назад (цифры +/-)
IncYear("Дата",кол-во лет) - функция возвращает количество лет вперед или назад (цифры +/-)
Не забудьте в Uses прописать DateUtils
S@fer вне форума Ответить с цитированием
Старый 02.05.2009, 12:24   #8
Koter1984
Пользователь
 
Регистрация: 02.05.2009
Сообщений: 21
По умолчанию

DateUtils прописываю в uses все равно ругается(( выдает incompatible types

Последний раз редактировалось Koter1984; 02.05.2009 в 12:27.
Koter1984 вне форума Ответить с цитированием
Старый 02.05.2009, 12:25   #9
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

попробуйте после implementation прописать
Код:
implementation

{$R *.dfm}

Uses DateUtils;
S@fer вне форума Ответить с цитированием
Старый 02.05.2009, 12:32   #10
Koter1984
Пользователь
 
Регистрация: 02.05.2009
Сообщений: 21
По умолчанию

Опять ругается((
Koter1984 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с датой Aleksandr Общие вопросы Delphi 12 29.09.2008 14:01
Работа с датой Dunpeal Общие вопросы Delphi 5 15.05.2008 12:05
Работа с датой [RR]Reaction Общие вопросы Delphi 3 07.04.2008 21:52
Несовпадение с датой RoZi Помощь студентам 26 28.11.2007 13:05
Манипуляции с датой и временем. Tatyana БД в Delphi 16 29.06.2007 19:19