v7: 1с++ Как проверить вхождение даты в диапазон? #771803


#0 by palpetrovich
ДатаИзв - реквизит Документа Извещение, тип - дата SELECT     ,CAST(Док.ДатаИзв as DateTime) Дата2 FROM Документ,Извещение Док (nolock) WHERE 1 = 1     AND CAST(Док.ДатаИзв as DateTime) BETWEEN :НачДата AND :КонДата~ ругается:    [SQL Server]Conversion failed when converting date and/or time from characr string. наверное правильно ругается, ибо: Научите ка надо пожалста :)
#1 by palpetrovich
Док.ДатаИзв BETWEEN :НачДата AND :КонДата~ тоже ругается
#2 by Mikeware
ну так модификатор у конечной даты убери
#3 by mikecool
проверь - чего у тебя каст возвращает в скуле может в дату не кастует
#4 by palpetrovich
так это все из-за него? вроде без "~ " работает, правда КонДата длязапроса на день увеличивать прийдется
#5 by palpetrovich
спасибо :)
#6 by palpetrovich
а еще, как в запросе сделать "ключ"? типа:
#7 by mikecool
кастануть в строку и сложить
#8 by Mikeware
ну у тебя модификатор превращает дату в строку. потому, что предназначен для поиска в DateTimeIddoc
#9 by Mikeware
так и сделать. можно кастануть, можно - если это числа - умножать. если даты, то складывать там...
#10 by palpetrovich
а как?, че-т не попаду... CAST(Док.Клиент as Str) CAST(Док.Клиент as String) что там для строки предусмотрено? вемсто String, Str
#11 by Mikeware
char? varchar
#12 by palpetrovich
а, спасибо
#13 by Mikeware
открой для себя BOL :-)
#14 by ADirks
вообще-то в данном случае надо писать Док.ДатаИзв BETWEEN :НачДата~~ AND :КонДата~~ вариант Док.ДатаИзв BETWEEN :НачДата AND :КонДата тоже работает, но имеет место неявное преобразование типа (char --> DateTime)
#15 by palpetrovich
обязательно! :) хм, так тоже работает. А что значит ~~ ? (2 шт)
#16 by Mikeware
В тексте запроса модификаторы обозначаются символами “~” или “*” после имени параметра. Количество символов “~” после имени параметра определяет номер модификатора. Если после имени параметра не указан модификатор, то номер модификатора равен 0. Так как типом «Неопределенный» (char) можно выразить любой тип 1С, для этого существует специальный модификатор, обозначаемый символом “*”, который определен для любого передаваемого типа 1С. Его номер 20. Модификаторы определены для следующих типов 1С: Строка 0: char - строка как есть; 1: char - должна быть передана позиция документа, из которой будет сформирована строка в формате date_time_iddoc; Дата 0: char - каноническое представление даты; 1: char - каноническое представление даты + символ “Z” (используется для обозначения момента времени конца этой даты); 2: datetime. Агрегатные типы (Перечисление, Справочник, Документ, ВидРасчета, Счет)         0: char - внутренний идентификатор объекта (короткая строка 6+3);         1: char - внутренний идентификатор объекта с видом (длинная строка 4+6 +3);         2: char - внутренний идентификатор объекта с видом и типом (2+4+6+3) (на самом деле такой тип нигде в 1С не используется, модификатор существует исключительно для обратной совместимости); ВидРасчета Кроме 0 и 1, которые работают как для всех агрегатных типов, 2-й определен особо: 2: Зависит от формата ИБ. SQL: int - идентификатор вида расчета; DBF: char - 36-й идентификатор вида расчета; Примеры: Передано значение типа число :ФлагУчастияВРасчетах = 1 :ФлагУчастияВРасчетах * = 'N                     1' Передано значение типа дата :ДатаНачала = '20030613' Передано значение типа Справочник.Контрагенты :Контрагент = '    H6   ' :Контрагент ~ = '  1W    H6   ' :Контрагент * = 'B1  1W    H6           '
#17 by palpetrovich
пасиб, будкм думать :)
#18 by Mikeware
а тебя алс-ка то 1с++ есть?
#19 by palpetrovich
дома есть, на работе нет если не считать того алса где УстановитьТекстовыйПараметр, ВыполнитьИнструкцию....
#20 by Mikeware
"гиви, ти арбюзы любишь? - кюшать да, а так - нэт" ©
#21 by palpetrovich
"думать, думаь - трусить надо!!" ©  :)
#22 by с2д
Боже! Какая некрофилия! Предлагали сдать тестовое задание по _этому_, ушёл не доделав. Убила сама мысль, что придётся несколько лет писать под системой сдохшей ещё в 2009 году. Люди с УП и СКД работать будут, а тут несколько лет полной профессиональной деградации.
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С