Teradata转Hive:日期计算SQL执行报错,求修改方案及正确语句
问题分析与修改方案
不支持的原因
Teradata允许直接对DATE类型值加整数(整数代表天数),但Hive不支持这种语法,必须使用专门的日期函数实现日期加减操作,这是报错的核心原因。
需要修改的部分
- 将Teradata的
DATE '1900-01-01' + 整数语法,替换为Hive的date_add()函数,该函数格式为date_add(起始日期, 天数)。
修改后的Hive查询语句
CAST(date_add('1900-01-01', CAST(999999999 - TRIM(BASM_DATE) AS INTEGER)) AS DATE) AS BASM_DATE
补充说明
如果BASM_DATE本身就是整数类型,TRIM()可以省略,简化为:
CAST(date_add('1900-01-01', 999999999 - BASM_DATE) AS DATE) AS BASM_DATE
内容的提问来源于stack exchange,提问作者Mugiwara
相关产品推荐
相关产品推荐

