You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 19:07:38