|
Как определить в запросе вхождения параметра в интервал времени |
☑ |
0
Max1986
13.06.12
✎
16:25
|
Что то жутко туплю, подскажите плиз как это сделать.
Имеем некую дату: 20.05.12 12:35:16
Есть запрос к справочнику смен, на выходе которого таблица
ВЫБРАТЬ
Смены.Ссылка,
Смены.ВремяНачала,
Смены.ВремяОкончания
ИЗ
Справочник.Смены.ПериодыСмены КАК Смены
Типа
Смена1 10:00:00 15:00:00
Смена2 15:00:01 22:00:00
Как мне отобрать те сметы, которые удовлетворяют дате, которую я передам в запрос.
Грубо говоря - как мне привести передаваемую дату к значению Время, что бы задать интервал в запросе - МЕЖДУ
|
|
1
andrewks
13.06.12
✎
16:27
|
чо, время строкой задано?
|
|
2
hohol
13.06.12
✎
16:29
|
датавремя = '20.05.12 12:35:16'
|
|
3
ILM
гуру
13.06.12
✎
16:30
|
(0) Вам нужен номер смены?
В языке запросов 1С есть функции "РазностьДат" и "НачалоПериода", Есть оператор МЕЖДУ.
Чуть-чуть начинаем думать и комбинировать функции и оператор.
У вас есть ВремяНачала и ВремяОкончания. А так как 1С хранит время как ДатаВремя значит..... (тут думаем)
|
|
4
Buster007
13.06.12
✎
16:30
|
Дата("00010101" + Формат(Период, "ЧЧммсс"));
|
|
5
Buster007
13.06.12
✎
16:31
|
+(4) ну это если ты устанавливаешь параметр )
|
|
6
Max1986
13.06.12
✎
16:32
|
(4)нет! надо в запросе преобразовать ко времени!
Т.е. я в запрос передаю дату 21.05.2012 12:10:16
а надо 12:10:16 - только время
|
|
7
hohol
13.06.12
✎
16:34
|
(6) ты гонишь.
|
|
8
hohol
13.06.12
✎
16:35
|
нет даты, нет времени. Есть датавремя '201206131633' - сегодня, сейчас
|
|
9
andrewks
13.06.12
✎
16:36
|
в языке запросов есть замечательные функции Час, Минута, Секунда
|
|
10
Maxus43
13.06.12
✎
16:36
|
(9) секунды нет же
|
|
11
andrewks
13.06.12
✎
16:37
|
(10) есть
|
|
12
Maxus43
13.06.12
✎
16:37
|
(11) а, в НачалоПериода нет секунды, минимум минута
|
|
13
andrewks
13.06.12
✎
16:39
|
или ДобавитьКДате
|
|
14
ILM
гуру
13.06.12
✎
16:47
|
Если от ТекущегоДатыВремени отнять НачалоПериода (ТекущийПериод, День), то получится время. А его уже можно сравнить с другим временем. Или добавьте ко времени текущую дату, получите время смены в текущий день.
|
|
15
Max1986
13.06.12
✎
16:51
|
спасибо всем. забил я - привел входной параметр ко времени вида 01.01.0001 8:25:16 - и дальше пошло
|
|
16
ILM
гуру
13.06.12
✎
16:52
|
Отнял значит )))
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший