powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Время/дата
13 сообщений из 13, страница 1 из 1
Время/дата
    #32212933
AndreyBond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как заставить ACCESS понимать в запросах даты не такого вида 23/04/2003 а как задано в системе 23.04.2003 и жедлательно без # в начале конце. Просто я с этой базо пытаюсь работать из Делфи через Адо и есть проблемы..
...
Рейтинг: 0 / 0
Время/дата
    #32212939
AndreyBond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот как я делал для BDE и Paradox.
Компонент Query имеет запрос "select * from table where date between :s and :f;"
Делаю так:
Код: plaintext
1.
2.
3.
Query.Close;
Query.Parameters[ 0 ].AsDate:=DateTimePicker1.Date;
Query.Parameters[ 1 ].AsDate:=DateTimePicker2.Date;
Query.Open;

Всё работало, а теперь не знаю как это перевести на ADOQuery. Я в курсе, что там к параметру обращаться надо через свойство Params. Но у этого свойства нет AsDate,AsString и т.д. и плюс к этому у Access формат даты в запросе такой: #04/23/2003#.
Как это победить, как написаный выше код заставить работать и под Access и ADO или как его надо изменить для работы в этой связке??
...
Рейтинг: 0 / 0
Время/дата
    #32212944
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В ADO есть Parameter.Type
При создании указываешь тип adDBDateTime и вперед.
...
Рейтинг: 0 / 0
Время/дата
    #32212945
Фотография TatianaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если в Аксесе то надо так форматировать дату:
Format(CDate([Forms]![F_RepSapak]![BeginPlanDTText]), "\#mm\/dd\/yy hh:mm:ss\#")

[Forms]![F_RepSapak]![BeginPlanDTText]- откуда передаю дату

подумай как это приспособить
к дельфи
...
Рейтинг: 0 / 0
Время/дата
    #32212948
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, я вообще никогда гемора не имею с форматированием дат при передаче в запрос
Гораздо проще (имхо) сделать сохраненный запрос с параметром типа дата/время, ну или сотворить такой запрос на лету, и передать туда нужную дату (хоть как отформатированную) через этот параметр.
...
Рейтинг: 0 / 0
Время/дата
    #32212961
AndreyBond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как сказал Лох Позорный, действительно тип указываешь и работает, но есть большое но:
если дата выглядет так 03.04.2003, где 03-число, 04-месяц, 2003-год, то в запрос ADO подставляет так как есть, и Access понимает дату так (у него формат другой mm/dd/yyyy):04-число, 03-месяц, то есть если я вибираю дату от 02.03.2003 до 04.03.2003, то мне выводятся значения от 03.02.2003 до 03.04.2003. Если дата выглядет так 23.04.2003, то Access понимает, что первым у меня указано число. Как заставить его думать, что первым я всегда число указываю.
...
Рейтинг: 0 / 0
Время/дата
    #32212964
AndreyBond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И ещё, если я ему говорю вывести записи c 03.03.2003 до 03.03.2003, то вообще ничего не выводится... Что это за такое??
...
Рейтинг: 0 / 0
Время/дата
    #32212965
AndreyBond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TatianaT:
Вот это sql запрос сам access пишет не верен, как его подредактировть, чтоб он верен был:
select * from table where
Date between Format(CDate('03.04.2003'), "\#mm\/dd\/yy\#") and Format(CDate('03.05.2003'), "\#mm\/dd\/yy\#");
То есть задача, вытащить записи с датой от 03 апреля по 03 мая.
...
Рейтинг: 0 / 0
Время/дата
    #32212966
AndreyBond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос:
>>>>И ещё, если я ему говорю вывести записи c 03.03.2003 до 03.03.2003, то вообще ничего не выводится... Что это за такое??
Отпадает, его я решил. Вопрос же о формировании даты остаётся в силе.
...
Рейтинг: 0 / 0
Время/дата
    #32213019
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня получалось, если я делал примерно так
"#mm-dd-yy#"
хотя за точность не ручаюсь.
в хелпе по моему я видел требование разделитель "-".
...
Рейтинг: 0 / 0
Время/дата
    #32213041
VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно использовать функцию DateValue
Например
Код: plaintext
1.
select * from table where 
[Date] between  DateValue(strMyDate1) and DateValue(strMyDate2) 
...
Рейтинг: 0 / 0
Время/дата
    #32213081
SSK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSK
Гость
Запрос
select * from table where
Date between Format(CDate('03.04.2003'), "\#mm\/dd\/yy\#") and Format(CDate('03.05.2003'), "\#mm\/dd\/yy\#")
по ходу неверный из-за того, что формат вернет строковое значение даты а не саму дату. к тому же такой подход по-моему не совсем правильный. Ведь системная дата может быть и dd.mm.yy и любой другой. А что, на delphi нельзя написать функцию для преобразовая даты, а затем передать преобразованную дату в запрос?
...
Рейтинг: 0 / 0
Время/дата
    #32213082
Фотография drbond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть в Дельфи такая замечательная функция FormatDateTime :-)
При её использовании вопрос с форматированием даты решается сам-собой.
Становится возможным передавать дату в запрос в виде строки формата #dd/mm/yy# или #dd/mm/yyyy# как больше по вкусу. Акцесс такое понимает и кушает с удовольствием.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Время/дата
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]