解析日期时HANA错误

时间:2018-04-28 00:59:55

标签: sql sap hana

我正在尝试这样做

CREATE PROCEDURE Create_test(IN datefrom date
)
as

begin
select add_years('0',years_BETWEEN('0', :datefrom)-1 )from dummy;
end

当我运行它没关系时,没有错误,程序就会创建。但是当我尝试调用该程序时,它会给我这个错误

  

SAP Hana数据库错误:DATE,TIME或TIMESTAMP值无效:错误   同时解析11/11/2018 12:00:00 AM作为日期功能   类型转换()(位置31)

请帮忙

2 个答案:

答案 0 :(得分:0)

错误消息可能是由调用过程的方式引起的,即输入参数。

当您从current_date这样的函数输入实际日期数据类型(例如返回值)时,类型转换的结果喜欢to_date ('21/02/2018', 'DD/MM/YYYY')日期文字 date'2018/02/21')不会引发任何错误。

因此,正如您在答案中所写,问题是您在程序中添加的文本日期格式。在这种情况下,SAP HANA将尝试自动将值转换为日期数据类型,如果格式不是文档化的标准格式之一,则会失败。

这是为什么隐式类型转换需要非常小心的另一个例子。

关于程序的实际目标,找到当年的第一个日期,有一个更容易实现的目标。

函数current_date返回当前日期(在服务器时区中)。使用YEAR功能可以轻松完成该日期的year()组件。 最后,将其转换为日期(daydate / seconddate)数据类型会填充具有最低可能值的日期组件:即一年中的第一天。

select to_date(year(current_date)) NEW_YEAR_DATE from dummy

答案 1 :(得分:-1)

我知道答案。我使用的编辑器TOAD for SAP Solution在执行过程时给出了错误的日期格式。它给了我DD / MM / YYYY'格式,正确的是'YYYY / MM / DD'。