SAP HANA BTP-SQL字符串转Timestamp报错,求正确转换脚本
SAP HANA BTP-SQL:非标准字符串日期转Timestamp解决方案
问题核心
你的CREATED_DATETIME字段格式为DD-MM-YYYY HH:MM:SS(日-月-年,日期与时间之间有两个空格),之前的报错原因如下:
- 使用
TO_TIMESTAMP/TO_DATE时,格式掩码YYYY-MM-DD HH:MM:SS与输入字符串格式不匹配,导致[303]无效值错误 STR_TO_DATE、UNIX_TIMESTAMP是MySQL专属函数,SAP HANA不支持,因此报[328]函数不存在错误
正确转换脚本
1. 直接转换为TIMESTAMP类型
使用匹配原字符串格式的掩码解析,HANA中分钟用MI表示,24小时制用HH24:
SELECT TO_TIMESTAMP(CREATED_DATETIME, 'DD-MM-YYYY HH24:MI:SS') AS converted_timestamp FROM ORDER_TABLE;
2. 转换为指定格式的字符串(YYYY-MM-DD HH:MM:SS)
如果需要输出字符串格式的目标时间,先解析为TIMESTAMP再格式化:
SELECT TO_CHAR( TO_TIMESTAMP(CREATED_DATETIME, 'DD-MM-YYYY HH24:MI:SS'), 'YYYY-MM-DD HH24:MI:SS' ) AS formatted_timestamp_str FROM ORDER_TABLE;
3. 仅保留日期部分(时间置为00:00:00,匹配你的示例预期)
通过TRUNC函数截断时间部分,再格式化:
SELECT TO_CHAR( TRUNC(TO_TIMESTAMP(CREATED_DATETIME, 'DD-MM-YYYY HH24:MI:SS')), 'YYYY-MM-DD HH24:MI:SS' ) AS date_only_timestamp_str FROM ORDER_TABLE;
关键格式说明
SAP HANA日期时间格式掩码的核心规则:
DD:两位数日期,MM:两位数月份,YYYY:四位数年份HH24:24小时制小时,MI:分钟,SS:秒
内容的提问来源于stack exchange,提问作者Ambika ..
相关产品推荐
相关产品推荐

