Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
Гродненский Форум
20 Апрель 2024, 02:29:32
Новости, реклама:
   Главная   Новости Гродно Помощь Игры Календарь Войти Регистрация   Меню
Гродненский Форум > Компьютеры > Программирование
(Модераторы: Админ, barmalei) > Тема:

Поле типа "Дата" в Access

Страниц  :   Вниз
  Печать  
Автор Тема: Поле типа "Дата" в Access  (Прочитано 2281 раз)
0 Пользователей и 1 Гость смотрят эту тему.
alex-v
Настоящий гродненец
****

Репутация: +11/-0
Offline Offline

Пол: Мужской
Сообщений: 320

Просмотр профиля
« : 07 Март 2008, 17:57:54 »

Подскажите кто знает:

в Access можно задать поле таблицы типа "Дата/время".
А мне нужно поле типа "Дата", но его нет в списке. Что делать?
Записан
VooDoo
Почетный гродненец
*****

Репутация: +89/-1
Offline Offline

Пол: Мужской
Сообщений: 2885


Dum spiro spero

Просмотр профиля WWW Email
« Ответ #1 : 07 Март 2008, 18:10:23 »

1) использовать стринг
2) дата/время. Время просто будет вечно 00:00
3) заюзать нормальную базу
4) хранить время в миллисекундах
« Последнее редактирование: 07 Март 2008, 18:11:13 от VooDoo » Записан

Are you human? - My body is.
Do you feel pain? - My body does.
..- --- --- -.. --- ---
alex-v
Настоящий гродненец
****

Репутация: +11/-0
Offline Offline

Пол: Мужской
Сообщений: 320

Просмотр профиля
« Ответ #2 : 07 Март 2008, 18:29:55 »

Все дело в том, что у меня не работает запрос в компоненте ТADOQuery:

select * from table1 where s_date='03.03.2008'

Выдает ошибку. Что делать?
Записан
Не факт...хотя...
Почетный гродненец
*****

Репутация: +981/-4
Offline Offline

Пол: Мужской
Сообщений: 2207


कृष्ण

Просмотр профиля WWW Email
« Ответ #3 : 07 Март 2008, 18:58:42 »

select * from table1 where s_date='03.03.2008[highlight]%[/highlight]'
Записан
VooDoo
Почетный гродненец
*****

Репутация: +89/-1
Offline Offline

Пол: Мужской
Сообщений: 2885


Dum spiro spero

Просмотр профиля WWW Email
« Ответ #4 : 07 Март 2008, 18:59:10 »

попробуй так:
select * from table1 where s_date='03/03/2008 00:00:00'
просто посмотри как оно у тебя хранится и в таком формате делай запросы
Записан

Are you human? - My body is.
Do you feel pain? - My body does.
..- --- --- -.. --- ---
VooDoo
Почетный гродненец
*****

Репутация: +89/-1
Offline Offline

Пол: Мужской
Сообщений: 2885


Dum spiro spero

Просмотр профиля WWW Email
« Ответ #5 : 07 Март 2008, 19:00:21 »

Цитировать
select * from table1 where s_date='03.03.2008[highlight]%[/highlight]'
тогда уже select * from table1 where s_date [highlight]like[/highlight] '03.03.2008[highlight]%[/highlight]'
Записан

Are you human? - My body is.
Do you feel pain? - My body does.
..- --- --- -.. --- ---
Не факт...хотя...
Почетный гродненец
*****

Репутация: +981/-4
Offline Offline

Пол: Мужской
Сообщений: 2207


कृष्ण

Просмотр профиля WWW Email
« Ответ #6 : 07 Март 2008, 19:03:59 »

Кстати....в Ассess есть у типа Date/Time формат Short Date ... это то что тебе и надо....
Записан
alex-v
Настоящий гродненец
****

Репутация: +11/-0
Offline Offline

Пол: Мужской
Сообщений: 320

Просмотр профиля
« Ответ #7 : 07 Март 2008, 19:30:20 »

Заработал запрос: select * from table1 where s_date like '03.03.2008%'

А если я хочу такой запрос:
  select * from table1 where s_date > '03.03.2008'

Но он не работает, выдает ошибку. Что делать?
« Последнее редактирование: 07 Март 2008, 19:39:38 от alex-v » Записан
alex-v
Настоящий гродненец
****

Репутация: +11/-0
Offline Offline

Пол: Мужской
Сообщений: 320

Просмотр профиля
« Ответ #8 : 07 Март 2008, 21:56:32 »

Уже подсказали мне. Нужно делать так:

 ADOQuery1->SQL->Text="select * from table1 where s_date > :date";
 ADOQuery1->Parameters->ParamByName("date")->Value="03.03.2008";
 ADOQuery1->Active=1;

И работает без проблем.
Записан
Dark Side
Почетный гродненец
*****

Репутация: +63/-8
Offline Offline

Предупреждения: у пользователя уже 2 предупреждения
Пол: Мужской
Сообщений: 1142


Способствую

S https://advicenyc.com https://advicenyc.com https://advicenyc.com https://advicenyc.com https://advicenyc.com Просмотр профиля WWW
« Ответ #9 : 08 Март 2008, 15:28:54 »

Цитировать
Все дело в том, что у меня не работает запрос в компоненте ТADOQuery:

select * from table1 where s_date='03.03.2008'

Выдает ошибку. Что делать?

Мой тебе совет  - сделай этот запрос в Аксесе, а потом перекопируй Сам sql-текст в Query. Всё будет работать
Записан

Воля или СмертЪ
Dark Side
Почетный гродненец
*****

Репутация: +63/-8
Offline Offline

Предупреждения: у пользователя уже 2 предупреждения
Пол: Мужской
Сообщений: 1142


Способствую

S https://advicenyc.com https://advicenyc.com https://advicenyc.com https://advicenyc.com https://advicenyc.com Просмотр профиля WWW
« Ответ #10 : 08 Март 2008, 15:40:10 »

Цитировать
Подскажите кто знает:

в Access можно задать поле таблицы типа "Дата/время".
А мне нужно поле типа "Дата", но его нет в списке. Что делать?

Поле Дата/время есть. Когда бушь вбивать данные - может отобразиться вместе со временем, тогда закинь дату в начале в String (DateToStr), а потом стринговое значение снова в дату (StrToDate).
В принципе всё
Записан

Воля или СмертЪ
alex-v
Настоящий гродненец
****

Репутация: +11/-0
Offline Offline

Пол: Мужской
Сообщений: 320

Просмотр профиля
« Ответ #11 : 08 Март 2008, 22:48:08 »

UnknownSoldier
Цитировать
Мой тебе совет  - сделай этот запрос в Аксесе, а потом перекопируй Сам sql-текст в Query. Всё будет работать
А как сделать этот запрос в Access? Что надо нажимать, куда заходить? Подскажи, плиз.
Записан
Dark Side
Почетный гродненец
*****

Репутация: +63/-8
Offline Offline

Предупреждения: у пользователя уже 2 предупреждения
Пол: Мужской
Сообщений: 1142


Способствую

S https://advicenyc.com https://advicenyc.com https://advicenyc.com https://advicenyc.com https://advicenyc.com Просмотр профиля WWW
« Ответ #12 : 09 Март 2008, 13:52:46 »

Цитировать
UnknownSoldier
Цитировать
Мой тебе совет  - сделай этот запрос в Аксесе, а потом перекопируй Сам sql-текст в Query. Всё будет работать
А как сделать этот запрос в Access? Что надо нажимать, куда заходить? Подскажи, плиз.
Ну ты блин даёшь!!! Надо бы Аксес изучить трохи, впрочем я сам с ним столкнулся по необходимости - у нас калькуляция продукции на заводе на нём, старый программер ушёл, начальник ламер, так что на меня всё повесили - никуда не денешься. Ну ладно перейдём к предмету разговора
Создай базуданных - выскочит слева таблица - там слевва кнопки в ряд - таблицы, запросы и прочее.
Создай таблицу - там заодно и поле дата-время создашь.
Далее иди в запросы - создай в режиме конструктора - добавь таблицу ранее тобой созданную - и поля нажимая на них - напиши условие отбора в дата-время поле, а потом сохрани созданный запрос

Вот что у меня получилось - тут и ответ на твой вопрос  
SELECT FAMil.fam, FAMil.[Дата рождения] FROM FAMil WHERE (((FAMil.[Дата рождения])=#5/16/1983#));
То есть ты вместо кавычек должон ставить #


Записан

Воля или СмертЪ
alex-v
Настоящий гродненец
****

Репутация: +11/-0
Offline Offline

Пол: Мужской
Сообщений: 320

Просмотр профиля
« Ответ #13 : 09 Март 2008, 14:06:00 »

В принципе я в Access кое-что умею.
Я только не пойму откуда ты  в Access SQL-запрос берешь? Подскажи.
« Последнее редактирование: 09 Март 2008, 14:39:45 от alex-v » Записан
alex-v
Настоящий гродненец
****

Репутация: +11/-0
Offline Offline

Пол: Мужской
Сообщений: 320

Просмотр профиля
« Ответ #14 : 09 Март 2008, 15:16:17 »

UnknownSoldier, уже сам нашел в Access режим SQL.

Все. Всем спасибо за ответы.
Записан
Страниц  :   Вверх
  Печать  
 
Перейти в:  

Войти
Войдите, чтобы добавить комментарий

Войдите через социальную сеть

Имя пользователя:
Пароль:
Продолжительность сессии (в минутах):
Запомнить:
Забыли пароль?

Контакт
Powered by MySQL Powered by PHP Мобильная версия
Powered by SMF 1.1.20
SMF © 2006-2024, Simple Machines
Simple Audio Video Embedder
| Sitemap
Valid XHTML 1.0! Valid CSS!
Страница сгенерирована за 0,13 секунд. Запросов: 19.