배치 파일에서 사용자의 입력 날짜를 얻으려면 내가 그렇게하려고 할 때 나는 다음내가 배치 파일을 통해 SQL 쿼리를 실행하려고
잘못된 인수 오류
무엇입니까 나는 사용자 입력 날짜, 데이터 일치를 가져올 때 난 것은 1로 필요한이 내 SQL SCRIPT
:start
cls
@echo ------BILLING REPORT---------
@echo Please enter billing report Date in (YYYY/MM/DD)
@echo off
::set /P D = Enter Date:
::Date %Date% > Billing_Data.sql
PAUSE
sqlcmd -S database\instance_name -E -i "C:\Users\rb54761\Deskto\rb54761\Billing_Data_For_Certs_New.sql" > Output.txt -v Date = '2016-07-01'
:: -o "C:\Users\rb54761\Desktop\rb54761\Output.txt"
PAUSE
COPY C:\Users\rb54761\Desktop\rb54761\Output.txt C:\Users\rb54761\Desktop
PAUSE
goto start
를 실행하려고하고있는 배치 파일입니다 해당 날짜 내가 절은 데이터가 따라 를 가져올 수 있도록 곳에서 해당 날짜를 추가 할 2로 보내고 아래 내가 데이터
WHERE
DateCompleted > CONVERT(DATETIME, '$(Date)', 102))
SQL 배치가 아닙니다. 그리고 Output.txt -v Date = '2016-07-01'은 배치 파일에서 잘라 내지 않습니다! 리다이렉션 다음에 인수가 오면 안됩니다. 오류가있는 곳을 찾기 위해'echo on '을 설정하십시오. 그러나 적어도 내가 지적한 곳은 그렇습니다. –
메시지 102, 수준 15, 상태 1, 서버 데이터베이스 \ instance_name, 줄 28 '2016'근처의 구문이 잘못되었습니다. SQL 파일에서 날짜를 변환하는 동안 오류가 있다고 생각합니다. 대신 전체 날짜를 사용하지 않고 대신 2016을 사용하고 있습니다. –
@ Jean-FrançoisFabre - 사실이 아닙니다. 파일 리디렉션은 명령 내의 모든 위치, 즉 앞, 뒤 또는 중간에 나타날 수 있습니다! OP 명령의 후속 인수는 리디렉션이 아니라 sqlcmd에 대한 인수입니다. – dbenham