Я пытаюсь создать довольно простой набор выходных данных SQL, используя SQLCMD в пакетном процессе, где содержимое фильтруется по дате каждой записи, находящейся между двумя значениями, заполненными в отдельном рабочем файле. Эти значения были загружены в переменные на предыдущем этапе пакетного файла. Если я использую операции > или ‹, я получаю сообщение об ошибке «Выражение нелогического типа, указанное в контексте, где ожидается условие, рядом с И». Если я изменю операции на = или !=, они обработаются без ошибок, и я получу соответствующие результаты в наборе выходных данных.
Я искал документы и примеры, которые обеспечивают правильный синтаксис для использования операций в пакетной команде SQLCMD, и до сих пор ни один из них не упоминал > или ‹. Как указать эти сравнения или они невозможны в этой ситуации? Является ли проблема типом данных содержимого операндов?
SET OutputFile=%reports%\MD.SPCREQ01.%CompNum%.%yyyymmdd%_%hhmmss%.txt
sqlcmd -S %DBServerName% -d %DatabaseName% -o %OutputFile% -Q ^
"Select ^
FROM_NPA + '/' + FROM_NXX + '-' + FROM_NUMBER AS ""From Number"" ^
FROM dbo.MACC128 ^
WHERE CALL_YY + CALL_MM + CALL_DD >= '%FROM-CUT%' ^
AND CALL_YY + CALL_MM + CALL_DD <= '%TO-CUT%' ^
ORDER by CALL_YY, CALL_MM, CALL_DD, CONNECT_TIME_HH, CONNECT_TIME_MM, CONNECT_TIME_SS "