我正在编写一个想法所在的程序,如果用户给定的日期在2个固定日期之间,则它应执行以下代码。
但是我收到此语法错误消息:
不正确的逻辑表达式:在“ Comparison / SELECT-OPTION”之后只能加上“ AND”,“ OR”或“)”
代码:
SELECT-OPTIONS sdate FOR sy-datum DEFAULT '20190816'.
CONSTANTS: date1 TYPE d VALUE '20190101',
date2 TYPE d VALUE '20191231'.
IF sdate BETWEEN date1 AND date2. " <=== syntax error here
" do something
ENDIF.
答案 0 :(得分:3)
您正在使用SELECT-OPTIONS
,它不表示一个日期。这是包含多个日期甚至日期间隔的范围/表。因此,无法整体比较。您可以在调试器中查看它的外观,也许这样会使它更加清晰。
由于只希望用户输入一个输入日期,因此应使用PARAMETERS
。
因此,您不必像这样使用SELECT-OPTIONS
,而要使用PARAMETERS
:
DATA: date1 TYPE d VALUE '20190101',
date2 TYPE d VALUE '20191231'.
PARAMETERS input_d TYPE d.
IF input_d BETWEEN date1 AND date2.
"do something
ENDIF.