Chen_231236 2024-11-15 17:17 采纳率: 100%
浏览 70
已结题

高斯数据库(GuassDB)sql执行错误:ERROR: CASE types integer and interval cannot be matched

在执行一个查询语句中,包含case语句,是以前oracle的sql,迁移到高斯执行报错:

SELECT 
CASE
        
        WHEN dep_start_date > '2024-11-01 00:00:00' THEN
        ( to_date( dep_start_date, 'yyyy-mm-dd' ) - to_date( '2024-11-30 23:59:59', 'yyyy-mm-dd' ) + 0 ) + 1 ELSE 30 
    END days_cal
FROM fa_cardhistory;

报错信息如下:

img

请问各位同志有没有解决方案?

  • 写回答

1条回答 默认 最新

  • Roc-xb 领域专家: 后端开发技术领域 2024-11-15 18:52
    关注
    
    SELECT 
        CASE
            WHEN dep_start_date > TO_TIMESTAMP('2024-11-01 00:00:00', 'yyyy-mm-dd HH24:MI:SS') THEN
                (dep_start_date - TO_DATE('2024-11-30', 'yyyy-mm-dd')) + 1
            ELSE 
                30 
        END AS days_cal
    FROM fa_cardhistory;
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月27日
  • 已采纳回答 11月19日
  • 创建了问题 11月15日