|
Сравнение дат в запросе | ☑ | ||
---|---|---|---|---|
0
Kanifor
21.11.11
✎
13:46
|
Здравствуйте.
Есть запрос ВЫБРАТЬ МИНИМУМ(РасписаниеЗанятий.ДатаНачала) КАК ДатаНачала ИЗ РегистрСведений.РасписаниеДисциплин КАК РасписаниеЗанятий ГДЕ РасписаниеЗанятий.ДатаОкончания >= &ТекДата Параметр &ТекДата принимает результат функции ТекущаяДата() И вот жешь беда, запрос возвращает пустую выборку. Если условие не накладывать, то результат возвращается. Даты окончания, которые больше текущей в базе есть. Подскажите, в чем может быть ошибка? |
|||
1
Ursus maritimus
21.11.11
✎
13:48
|
ВЫБРАТЬ МИНИМУМ(РасписаниеЗанятий.ДатаНачала) КАК ДатаНачала
ИЗ РегистрСведений.РасписаниеДисциплин КАК РасписаниеЗанятий ИМЕЮЩИЕ МИНИМУМ(РасписаниеЗанятий.ДатаНачала) >= &ТекДата |
|||
2
LAAry
21.11.11
✎
13:48
|
Формат дат.Одна с временем, другая без.
|
|||
3
Wobland
21.11.11
✎
13:49
|
(2) а без - это как?
|
|||
4
LAAry
21.11.11
✎
13:50
|
хз. Я как то пытался сравнивать в запросе ресурс типа дата состав дата с перодом регистра. Не вышло.
|
|||
5
Жан Пердежон
21.11.11
✎
13:51
|
(0) что запрос возвращает без условия?
|
|||
6
szhukov
21.11.11
✎
13:53
|
(0) РАЗНОСТЬДАТ() - Уже предлагали?
|
|||
7
szhukov
21.11.11
✎
13:54
|
+(6)
ВЫБРАТЬ МИНИМУМ(РасписаниеЗанятий.ДатаНачала) КАК ДатаНачала ИЗ РегистрСведений.РасписаниеДисциплин КАК РасписаниеЗанятий ГДЕ РАЗНОСТЬДАТ(&ТекДата, РасписаниеЗанятий.ДатаОкончания, ДЕНЬ) >=0 |
|||
8
Wobland
21.11.11
✎
13:55
|
(4) не поленился, сходил проверил. всё работает.
Запрос=Новый Запрос; Запрос.Текст= "ВЫБРАТЬ ВЫБОР КОГДА &ДатаСоВременем>&ДатабезВремени ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ"; Запрос.УстановитьПараметр("ДатаСоВременем", ТекущаяДата()); Запрос.УстановитьПараметр("ДатаБезВремени", ТекДата); Результат=Запрос.Выполнить().Выгрузить(); |
|||
9
Kanifor
21.11.11
✎
13:58
|
(1) Результат - пустая выборка
(2) ДатаНачала - ресурс, ДатаОкончания - измерение и оба в свойствах имеют Дата И Время (5) Самую раннюю дату из списка дат (7) Выдает ошибку - Неверные параметры РАЗНОСТЬДАТ (8) Если же у меня не работает, то куда смотреть? Если поменять сравнение на меньше либо равно, то выдаются все даты, которые как больше, так и меньше |
|||
10
Kanifor
21.11.11
✎
14:00
|
ДатаНачала - измерение, ДатаОкончания - ресурс
|
|||
11
szhukov
21.11.11
✎
14:00
|
(9) РАЗНОСТЬДАТ() - для того и придумана, что бы не париться со временем и т.п., а сравнивать только то что нужно: дни, месяца, года...
РазностьДат (DateDiff) Функция предназначена для получения разницы между двумя датами. Параметры: · Выражение типа Дата; · Выражение типа Дата; · Тип разности – одно из: Секунда; Минута; Час; День; Месяц; Квартал; Год. Пример: РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2002, 10, 12, 10, 15, 34), ДАТАВРЕМЯ(2002, 10, 14, 9, 18, 06), «ДЕНЬ») Результат: 2 |
|||
12
Wobland
21.11.11
✎
14:01
|
ДатаОкончания - измерение? в параметры его
|
|||
13
Жан Пердежон
21.11.11
✎
14:03
|
(9) значит эта самая ранняя дата из списка меньше текущей даты
|
|||
14
szhukov
21.11.11
✎
14:04
|
(9) У вас там точно даты?
Скопируйте запрос из (7) и выполните, нет там ошибок в параметрах. |
|||
15
szhukov
21.11.11
✎
14:05
|
+(14) как ТекДата устанавливаете - чему она равна?
|
|||
16
Kanifor
21.11.11
✎
15:58
|
(14) Точно даты. Я сам не понимаю из-за чего не срабатывает. Запрос, который я написал в (0) прислал мне разработчик конфигурации. Т.е. я подозреваю, что у него все работает, а если так, то как мне найти причину того, что у меня не срабатывает?
|
|||
17
Ненавижу 1С
гуру
21.11.11
✎
16:06
|
вывод - таких дат нет
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |