Модераторы: Akina

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Запрос с датами 
:(
    Опции темы
bopoha
Дата 24.10.2007, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Есть маленький нюанс в предложении WHERE запроса SQL MS Access не делает авто преобразований даты вида "dd.mm.yyyy" при сравнении (помойму, исключение Between ... and ...). В предложении SELECT таких проблем нет.

Например, это не прокатит:
Код

WHERE поле_типа_дата = "dd.mm.yyyy"


Нужно так:
Код

WHERE поле_типа_дата = Format("dd.mm.yyyy", "#mm/dd/yyyy#")
или
WHERE поле_типа_дата = CDate("dd.mm.yyyy")


В функцию, которую вы определили сами, можно передавать все что угодно. Для функций, вызываемых из запроса SQL, рекомендую Variant (т.к. в поле может встретится Null). Внутри функции можно обработать разные варинты и преобразования типов.

PM MAIL WWW ICQ Skype GTalk   Вверх
etc
Дата 25.10.2007, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


FCZ
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 23.2.2005
Где: Красногорск

Репутация: нет
Всего: 3



Akina, Спасибо. Сделал новый запрос с таким видом и все вышло нормально. Может до этого знак какой пропустил.
PM WWW ICQ   Вверх
Karam_S
Дата 11.2.2008, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 11.2.2008
Где: г. Новокузнецк

Репутация: нет
Всего: нет



Помогите начинающему user-у.
В Access имеется таблица с данными в формате даты.
Создал пользовательский запрос, с условием отображения данных соответствующих <#17.02.2008#. Работает нормально и отображает 12 записей.
Вопрос: можно ли это условие указать в другом формате, а именно, чтобы указывалась ссылка на поле даты в другой таблице?
Мне нужно, чтобы в запросе отобразились записи, сделанные до определённой даты.
Например, я попробовал так: 
<[Данные о сессии]![Начало сессии] 
или 
<DateValue([Данные о сессии]![Начало сессии])
Но в результате появилось окно с запросом на параметры, а если нажмешь ОК, то результат в запросе пустой.


PM MAIL ICQ   Вверх
bopoha
Дата 11.2.2008, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Вот так вот просто на таблицу ссылаться нельзя.. Нужно выбрать из нее данные подзапросом.... 
Например, так:
Код

.... WHERE поле_дата1 = (SELECT First(поле_дата2) FROM таблица)

PM MAIL WWW ICQ Skype GTalk   Вверх
Karam_S
Дата 12.2.2008, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 11.2.2008
Где: г. Новокузнецк

Репутация: нет
Всего: нет



По-маленьку стал вникать в SQL.
Одно из моих условий получилось вот так
Код

... (Проверка.Проверена)<All (SELECT [Данные о сессии]![Начало сессии] FROM [Данные о сессии]))

Спасибо за отклик и подсказку.  smile 
PM MAIL ICQ   Вверх
Zorak
Дата 7.3.2008, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 720
Регистрация: 13.11.2007

Репутация: нет
Всего: 3



Вот я например перечитал всё, что здесь написано, и не понял как сделать (моя лаба, но никак не получится) : нужно определить сегоднящнюю дату, к ней додать 30 дней и получить новую дату, дальше вивести все дати, которие больше етой новой дати....новую дату я определил с помощю Date (), но вот вопрос, ЧТО мне делать с етой датой smile и как к ней додать 30 ?
P.S. SQL НЕ использовать...


--------------------
Знание - сила. А сила есть, ума не надо...
Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло.
PM MAIL ICQ   Вверх
Akina
Дата 7.3.2008, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Код

Date() + 30



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Kerio
Дата 8.3.2008, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 7.3.2008

Репутация: нет
Всего: нет



Цитата(Zorak @ 7.3.2008,  21:05)
Вот я например перечитал всё, что здесь написано, и не понял как сделать (моя лаба, но никак не получится) : нужно определить сегоднящнюю дату, к ней додать 30 дней и получить новую дату, дальше вивести все дати, которие больше етой новой дати....новую дату я определил с помощю Date (), но вот вопрос, ЧТО мне делать с етой датой smile и как к ней додать 30 ?
P.S. SQL НЕ использовать...

Очень интересно как это можно сделать выборку без SQL. Влюбом случае запрос формируется, будь то ты его набиваешь ручками, или же верстаешь в конструкторе.
Вот смотри сюда, если тебе нужен такой результат, то пользуйся, если нет, то видно я просто не понял твоей проблемы, постарайся поточнее описать.
datequery.jpg
На всякий случай приведу и код:
Код

SELECT dates.key, dates.date FROM dates WHERE (((dates.date)>Date()+30));

PS: когда делал "сегодня" было 07.03.2008 smile


Это сообщение отредактировал(а) Kerio - 8.3.2008, 00:11
PM MAIL   Вверх
Zorak
Дата 9.3.2008, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 720
Регистрация: 13.11.2007

Репутация: нет
Всего: 3



Цитата(Kerio @ 8.3.2008,  00:05)
Цитата(Zorak @ 7.3.2008,  21:05)
Вот я например перечитал всё, что здесь написано, и не понял как сделать (моя лаба, но никак не получится) : нужно определить сегоднящнюю дату, к ней додать 30 дней и получить новую дату, дальше вивести все дати, которие больше етой новой дати....новую дату я определил с помощю Date (), но вот вопрос, ЧТО мне делать с етой датой smile и как к ней додать 30 ?
P.S. SQL НЕ использовать...

Очень интересно как это можно сделать выборку без SQL. Влюбом случае запрос формируется, будь то ты его набиваешь ручками, или же верстаешь в конструкторе.
Вот смотри сюда, если тебе нужен такой результат, то пользуйся, если нет, то видно я просто не понял твоей проблемы, постарайся поточнее описать.
datequery.jpg
На всякий случай приведу и код:
Код

SELECT dates.key, dates.date FROM dates WHERE (((dates.date)>Date()+30));

PS: когда делал "сегодня" было 07.03.2008 smile

Ето почти то =), но ето всё моя вина....я не правильно обяснил свою проблему....у мну есть одна таблица и два столбца...так вот, мне нужно прописать в условии, чтоб оно брало дату из одного столбца и приравняло к дате с другого столбца И!! если оно больше на 30 дней, то виводило ету дату....
user posted image
мне нужно, чтоб брало дату с "ДатаВзяття" и приравняло с "ДатаПовернення" И!!! если оно больше на 30 дней то виводило его на екран...

Это сообщение отредактировал(а) Zorak - 9.3.2008, 16:25


--------------------
Знание - сила. А сила есть, ума не надо...
Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло.
PM MAIL ICQ   Вверх
Akina
Дата 10.3.2008, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Код

If (Data2 - Data > 30) Then Procedure1() Else Procedure2()

Код

IIF(Data2 - Data > 30; Value1; Value2)
Хотя правильнее использовать DateDiff() - в обоих случаях


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Zorak
Дата 13.3.2008, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 720
Регистрация: 13.11.2007

Репутация: нет
Всего: 3



да, всё получилось, спасибо...а знает ли кто какой короткий хороший справочник по всем етим функциям и не только на запросы ??? а то у меня вновь новые проблеми, которие хочю попитаться решить сам...а справочника нормального никак найти не могу....(


--------------------
Знание - сила. А сила есть, ума не надо...
Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло.
PM MAIL ICQ   Вверх
Akina
Дата 24.3.2008, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454




M
Akina
1) Один топик - один вопрос.
2) Язык общения на форуме - русский технический.

Тема закрыта.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Закрытая темаСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0959 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.