你这又犯了和前一题一样的错误, and 和 or 放在一个层级了,所有的and 就会都变成 or ,要记得加括号啊。 另外,oracle的日期加减不是你这么写的: 如果你这个字段类型是个date,那么可以直接把这个值加7,就是7天后了; 如果你这个字段类型是个varchar2,那么可以转成date类型后再加7,比如 to_date(字段名,'yyyy-mm-dd')+7 如果要把date再转回varchar2,使用to_char函数,比如 to_char(date类型字段,'yyyy-mm-dd')