使用ssrs 2017和SAP Hanna通过odbc将NVARCHAR转换为日期

2020-09-05 23:11发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


am使用SSRS 2017通过ODBC连接查询SAP hana数据库。

我将日期列 BUDAT 返回为 20190101 。 我正在尝试将其转换为日期,但是在Sataset屏幕中,不允许我使用CONVERT或FORMAT命令:

尝试#1:

  CONVERT(DATE,RIGHT(SAPABAP1.AFRU.BUDAT,2)+ SUBSTR(SAPABAP1.AFRU.BUDAT,3,2)+ LEFT(SAPABAP1.AFRU.BUDAT,4)) 

我遇到错误

表达式无效或缺失

当我"输入"我输入的代码时。

尝试#2

 格式(SAPABAP1.AFRU.BUDAT," dd/MM/yyyy") 

SQL Server接受语法,但是当查询尝试运行时,出现错误

一般错误; 260个无效的列名; dd/MM/yyy:line1 col 1029(按pos 1028)

我花了几天的时间尝试使用此代码的主题,但无济于事

我希望将输出显示为 dd/MM/yyyy

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


am使用SSRS 2017通过ODBC连接查询SAP hana数据库。

我将日期列 BUDAT 返回为 20190101 。 我正在尝试将其转换为日期,但是在Sataset屏幕中,不允许我使用CONVERT或FORMAT命令:

尝试#1:

  CONVERT(DATE,RIGHT(SAPABAP1.AFRU.BUDAT,2)+ SUBSTR(SAPABAP1.AFRU.BUDAT,3,2)+ LEFT(SAPABAP1.AFRU.BUDAT,4)) 

我遇到错误

表达式无效或缺失

当我"输入"我输入的代码时。

尝试#2

 格式(SAPABAP1.AFRU.BUDAT," dd/MM/yyyy") 

SQL Server接受语法,但是当查询尝试运行时,出现错误

一般错误; 260个无效的列名; dd/MM/yyy:line1 col 1029(按pos 1028)

我花了几天的时间尝试使用此代码的主题,但无济于事

我希望将输出显示为 dd/MM/yyyy

付费偷看设置
发送
1条回答
compass1988
1楼-- · 2020-09-05 23:52

假设SSRS将SQL作为传递传递给HANA ...

AFRU.BUDAT是NVARCHAR(8)列,这是SAP ECC和S/4保留日期的方式。 请注意,它也可以存储不合逻辑的日期,因此您可能必须将其过滤掉。

如果要将值用作DATE,请使用TO_DATE函数,如果要使用DATE的特定字符串表示形式, 使用TO_VARCHAR,或在原始字符串上使用SUBSTRING或类似的字符串。

例如

选择前3个不同的budat,to_date(budat,'yyyymmdd')作为date_displayed_as_string,
 substring(budat,7,2)||  '/'||  substring(budat,5,2)||  '/'|| 子字符串(budat,1,4)为Reformated_string,
 to_varchar(to_date(budat,'yyyymmdd'),'dd/mm/yyyy')为formatted_date
 来自非洲
 

一周热门 更多>