![]() |
![]() |
![]() |
|
1c8 - запросы - операции над датами | ☑ | ||
---|---|---|---|---|
0
Berds
15.10.04
✎
15:40
|
Подскажите пожалста, как в 1С8.0 в поле запроса получить разность двух дат к примеру в днях, секунды бы думаю тоже подошли
|
|||
1
Волшебник
15.10.04
✎
15:45
|
(Дата1 - Дата2) - разве не работает?
Результат будет в секундах. Чтобы получить результат в сутках, подели на 86400 (секунд в сутках). |
|||
2
Berds
18.10.04
✎
08:00
|
К примеру выражение:
ВЫБРАТЬ (ДатаВремя(2004,10,20) - ДатаВремя(2004,10,10)) не работает и возвращает ошибку: Неверные параметры "-" |
|||
3
Shaytan
18.10.04
✎
09:26
|
А что ты хочешь выбрать?
|
|||
4
Волшебник
18.10.04
✎
10:16
|
см. функцию РАЗНОСТЬДАТ
|
|||
5
Волшебник
18.10.04
✎
10:50
|
Синтаксис:
РАЗНОСТЬДАТ(<Дата1>, <Дата2>, <Тип>) Пример: Выбрать РАЗНОСТЬДАТ(Период, &РабДата, Секунда) ИЗ РегистрСведений.КурсыВалют вместо "Секунда" может быть Минута, Час, День, Месяц, Год Есть также функция ДОБАВИТЬКДАТЕ ДОБАВИТЬКДАТЕ(<Дата>, <Тип>, <Количество>) Пример: Выбрать ДОБАВИТЬКДАТЕ(Период, Месяц, 2) ИЗ РегистрСведений.КурсыВалют |
|||
6
kabazЯba
19.10.04
✎
11:33
|
(5) Очень интересно. Чего-то я спрашивал "Синтаксис-помощьник", он ничего не знает про РАЗНОСТЬДАТ и ДОБАВИТЬКДАТЕ.
|
|||
7
Archon
19.10.04
✎
12:07
|
Да, почему-то не могу использовать. Или это только в запросе?
РАЗНОСТЬДАТ(РабочаяДата,ТекущаяДата()) = Ошибка в выражении |
|||
8
Волшебник
19.10.04
✎
12:26
|
(6) появилось в новом релизе
(7) только в языке запросов |
|||
9
kabazЯba
19.10.04
✎
12:36
|
(8) В каком новом? У меня ща 8.0.8.7. Новее есть чтоли?
|
|||
10
kabazЯba
19.10.04
✎
12:40
|
(8) Кстати. Как быть когда надо НЕ В ЗАПРОСЕ рассчитать разницу между датами в минутах, часах, днях, неделях, месяцах, кварталах, годах? Про секунды молчу, т.к. Дата1 - Дата2 = <разница в секундах>. Чёли самому писать???
|
|||
11
Волшебник
19.10.04
✎
20:57
|
(10) Создавай запрос, передавай даты в запрос как параметры, делай запрос к любой таблице, выполняй его и из результата запроса извлекай разницу дат.
А вообще можно секунды поделить на 60 и получишь минуты, поделить еще на 60 и получишь часы, еще на 24 и получишь сутки. А вот в месяцах сложнее... |
|||
12
Kyrales
20.01.05
✎
06:53
|
А каким образом показать пустую дату в запросе?
Вот это не работает: ... |ГДЕ | (Спр.Дата = ""00010101""); |
|||
13
sunny
20.01.05
✎
07:10
|
Спр.Дата=&ПараметрДата-здесь задается параметр
а значение ему устанавливается в Запрос.УстановитьПараметр("ПараметрДата",'0001-01-01'); |
|||
14
Shaytan
20.01.05
✎
09:04
|
ГДЕ
| (Спр.Дата = '00010101'); |
|||
15
PVasili
20.01.05
✎
11:39
|
(12) см (14) и rtfm стр 1-13 строка чивр, заключенная в одинарные кавычки вида 'ГГГГММДДччммсс'
|
|||
16
ezh
20.01.05
✎
13:56
|
дурдом.
в запросе константы типа дата задаются только через ДатаВремя(). |
|||
17
Shaytan
20.01.05
✎
16:11
|
(16) - Прав:
Значения типа дата задаются с помощью ключевого слова ДАТАВРЕМЯ, после которого в скобках последовательно указываются год, месяц, день, час, минута, секунда. Последние три указывать необязательно. |
|||
18
Kyrales
20.01.05
✎
17:44
|
В итоге у меня сработало вот так:
|ГДЕ | (Спр.Дата = ДатаВремя(1,1,1)); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |