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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.07.2015, 15:13   #1
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию Запись в БД из DateTimePicker

Добрый день, записываю следующим образом:

Код:
Form1.ADOQuery1.FieldByName('SOnDate').AsDateTime:=DateTimePicker1.Date;
а в ячейку, кроме даты записываются еще и часы с минутами:

Код:
21/01/2015 14:19:44
Как сделать, чтобы записывалась только дата?
Dux вне форума Ответить с цитированием
Старый 20.07.2015, 15:16   #2
Konstantin_ua
Не судите строго
Форумчанин
 
Аватар для Konstantin_ua
 
Регистрация: 31.03.2011
Сообщений: 202
По умолчанию

Цитата:
Сообщение от Dux Посмотреть сообщение
Добрый день, записываю следующим образом:

Код:
Form1.ADOQuery1.FieldByName('SOnDate').AsDateTime:=DateTimePicker1.Date;
а в ячейку, кроме даты записываются еще и часы с минутами:

Код:
21/01/2015 14:19:44
Как сделать, чтобы записывалась только дата?
Вот пример
Form1.ADOQuery1.FieldByName('SOnDat e').AsDateTime:=FormatDateTime('d/m/y', DateTimePicker1.Date);

Последний раз редактировалось Konstantin_ua; 20.07.2015 в 15:22.
Konstantin_ua вне форума Ответить с цитированием
Старый 20.07.2015, 15:25   #3
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Вот так заработало, спасибо!

Код:
Form1.ADOQuery1.FieldByName('SOnDate').AsDateTime:=StrToDate(FormatDateTime('d/m/y', DateTimePicker1.Date));
Хотя может есть более корректный способ? Чтобы не переводить в String а потом обратно в DateTime?
Dux вне форума Ответить с цитированием
Старый 20.07.2015, 15:34   #4
Konstantin_ua
Не судите строго
Форумчанин
 
Аватар для Konstantin_ua
 
Регистрация: 31.03.2011
Сообщений: 202
По умолчанию

Цитата:
Сообщение от Dux Посмотреть сообщение
Вот так заработало, спасибо!

Код:
Form1.ADOQuery1.FieldByName('SOnDate').AsDateTime:=StrToDate(FormatDateTime('d/m/y', DateTimePicker1.Date));
Хотя может есть более корректный способ? Чтобы не переводить в String а потом обратно в DateTime?
Думаю вряд ли, может можно просто маску ввода поставить на поле?
Konstantin_ua вне форума Ответить с цитированием
Старый 20.07.2015, 15:46   #5
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,770
По умолчанию

Цитата:
Сообщение от Dux Посмотреть сообщение
Хотя может есть более корректный способ? Чтобы не переводить в String а потом обратно в DateTime?
Да, естественно:
Код:
  ADOQuery1.FieldByName('SOnDate').AsDateTime := Trunc(DateTimePicker1.Date);
К слову сказать, упоминание переменной Form1 изнутри кода формы -- тоже быдлокод.
Vapaamies вне форума Ответить с цитированием
Старый 20.07.2015, 16:35   #6
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

То, что нужно, спасибо!
Dux вне форума Ответить с цитированием
Старый 20.07.2015, 22:10   #7
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от Dux Посмотреть сообщение
Добрый день, записываю следующим образом:

Код:
Form1.ADOQuery1.FieldByName('SOnDate').AsDateTime:=DateTimePicker1.Date;
а в ячейку, кроме даты записываются еще и часы с минутами:

Код:
21/01/2015 14:19:44
Как сделать, чтобы записывалась только дата?
Пускай будеть записивать время тоже, Для отображения в ячейку можно только дата http://programmersforum.ru/showthrea...=280100&page=2
xxbesoxx вне форума Ответить с цитированием
Старый 21.07.2015, 03:46   #8
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,770
По умолчанию

Цитата:
Сообщение от xxbesoxx Посмотреть сообщение
Пускай будеть записивать время тоже
На самом деле это разные задачи. Дата, записанная с "невидимым" временем, может быть не равна другой дате с другим временем. Тут уже от логики задачи зависит, что конкретно нужно.
Vapaamies вне форума Ответить с цитированием
Старый 21.07.2015, 10:51   #9
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
На самом деле это разные задачи.
Ну да
Цитата:
может быть не равна другой дате с другим временем.
если надо отбрасивать "время" можно так же применять функция CAST(Field as DATE)
Цитата:
Тут уже от логики задачи зависит, что конкретно нужно.
Я не спорю , думаю что Dux хочет только отображать дата без "время"
xxbesoxx вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
БД (Paradox) и DateTimePicker. Задача состоит в том, при выборе даты DateTimePicker открывать соответствующую дату в БД anastassia БД в Delphi 10 12.04.2015 15:41
DateTimePicker Drugnir C++ Builder 2 15.11.2011 14:22
datetimepicker запись в бд vladislav_m БД в Delphi 11 06.04.2011 15:51
Запись даных с DateTimePicker в Еdit amator_roma БД в Delphi 2 01.12.2010 22:05