Опитвам се да генерирам доста основен набор от изходни данни на 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 "