我有包含sql脚本的properties.txt文件,我需要通过windows批处理文件传递变量值。
问题场景查询是:
SELECT a,b,c
FROM dual
where TO_CHAR(EXPECTED_RECOGNITION_DATE,'MM-YYYY') = TO_CHAR(ADD_MONTHS(sysdate,-1),'MM-YYYY')
我想通过变量参数传递值,这样函数:TO_CHAR(ADD_MONTHS(sysdate,-1),'MM-YYYY')
将提供动态输出:" 12-2016" &安培;在下个月它将是" 01-2017"
请提供您的想法。
答案 0 :(得分:0)
承认我们是在2017年1月,为了批量计算“12-2016”,你可以这样做:
::get current month and year
for /F "tokens=1-3 delims=/ " %%a in ('date /t') do (
set month=%%b
set year=%%c
)
::get the previous month
if "%month" NEQ "01" (
set /A month=%month%-1
) else (
set month=12
set /A year=%year%-1
)
::if things like "1-2017" aren't valid, you can add a zero
set month=00%month%
set month=%month:~-2%
::compute the final date
set date=%month%-%year%
::now call your request like @user2956477 said, using %date%
::(don't forget to add quotes if needed)
如果您对“for”语法感到不安,请查看该人(在您的终端中键入for /?
)。请特别注意/F
选项。