解析日期时出现 HANA 错误
HANA Error while parsing Date
我正在尝试这样做
CREATE PROCEDURE Create_test(IN datefrom date
)
as
begin
select add_years('0',years_BETWEEN('0', :datefrom)-1 )from dummy;
end
当我 运行 没问题,没有错误,程序就创建好了。但是当我尝试调用该过程时,它给了我这个错误
SAP Hana Database Error: invalid DATE, TIME or TIMESTAMP value: Error
while parsing 11/11/2018 12:00:00 AM as DATE at function
typecast() (at pos 31)
请帮忙
我知道答案。我使用的编辑器 TOAD for SAP Solution 在我执行程序时给我一个错误的日期格式。它给我 'DD/MM/YYYY' 格式,正确的是 'YYYY/MM/DD'.
错误信息很可能是由调用过程的方式引起的,即输入参数。
当您输入实际的 日期 数据类型时(例如 return 值 来自类似 current_date
的函数, type conversion like to_date ('21/02/2018', 'DD/MM/YYYY')
or a date literal date'2018/02/21'
的结果)不会引发错误。
因此,正如您在回答中所写,问题在于您输入过程的文本日期格式。在这种情况下,SAP HANA 将尝试自动将值转换为日期数据类型,但如果格式不是已记录的标准格式之一,则会失败。
这是隐式类型转换需要非常小心的另一个例子。
关于程序的实际目标,找到当年的第一个日期,有一种更容易实现的方法。
函数current_date
returns 当前日期(在服务器时区)。使用 year()
函数可以轻松获取该日期的 YEAR
部分。
最后,将其转换为日期 (daydate/seconddate) 数据类型会用尽可能低的值填充日期组件:那是一年中的第一天。
select to_date(year(current_date)) NEW_YEAR_DATE from dummy
我正在尝试这样做
CREATE PROCEDURE Create_test(IN datefrom date
)
as
begin
select add_years('0',years_BETWEEN('0', :datefrom)-1 )from dummy;
end
当我 运行 没问题,没有错误,程序就创建好了。但是当我尝试调用该过程时,它给了我这个错误
SAP Hana Database Error: invalid DATE, TIME or TIMESTAMP value: Error while parsing 11/11/2018 12:00:00 AM as DATE at function typecast() (at pos 31)
请帮忙
我知道答案。我使用的编辑器 TOAD for SAP Solution 在我执行程序时给我一个错误的日期格式。它给我 'DD/MM/YYYY' 格式,正确的是 'YYYY/MM/DD'.
错误信息很可能是由调用过程的方式引起的,即输入参数。
当您输入实际的 日期 数据类型时(例如 return 值 来自类似 current_date
的函数, type conversion like to_date ('21/02/2018', 'DD/MM/YYYY')
or a date literal date'2018/02/21'
的结果)不会引发错误。
因此,正如您在回答中所写,问题在于您输入过程的文本日期格式。在这种情况下,SAP HANA 将尝试自动将值转换为日期数据类型,但如果格式不是已记录的标准格式之一,则会失败。
这是隐式类型转换需要非常小心的另一个例子。
关于程序的实际目标,找到当年的第一个日期,有一种更容易实现的方法。
函数current_date
returns 当前日期(在服务器时区)。使用 year()
函数可以轻松获取该日期的 YEAR
部分。
最后,将其转换为日期 (daydate/seconddate) 数据类型会用尽可能低的值填充日期组件:那是一年中的第一天。
select to_date(year(current_date)) NEW_YEAR_DATE from dummy