ABAP Open SQL:获取当前日期的函数是什么?
ABAP Open SQL 中替代 SQL Server GETDATE() 的方案
正确语法说明
ABAP Open SQL不支持CURDATE()、NOW()这类函数,也不要给CURRENT_DATE加括号,以下是对应场景的正确写法:
1. 获取当前日期+时间(对应GETDATE())
使用CURRENT_TIMESTAMP(无括号),适用于ABAP 7.50及以上版本:
SELECT * FROM your_table WHERE update_time <= CURRENT_TIMESTAMP INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_data).
2. 仅获取当前日期
用CURRENT_DATE(无括号),或者ABAP系统变量@sy-datum(兼容低版本):
-- 方式1:SQL标准语法 SELECT * FROM your_table WHERE create_date = CURRENT_DATE INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_date_data). -- 方式2:系统变量(低版本兼容) SELECT * FROM your_table WHERE create_date = @sy-datum INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_date_data).
3. 仅获取当前时间
用CURRENT_TIME(无括号),或者系统变量@sy-uzeit:
SELECT * FROM your_table WHERE create_time >= CURRENT_TIME INTO CORRESPONDING FIELDS OF TABLE @DATA(lt_time_data).
你之前报错的原因
CURDATE()、NOW()是MySQL等数据库的专属函数,ABAP Open SQL不支持。CURRENT_DATE加括号属于语法错误,ABAP Open SQL中这类SQL标准函数不需要括号。- 如果
CURRENT_DATE无效,大概率是ABAP版本低于7.50,此时改用@sy-datum即可。
内容的提问来源于stack exchange,提问作者ComputerRobloxDood
相关产品推荐
相关产品推荐

