首页 > 解决方案 > 在 Redshift 中将文本转换为日期时收到错误

问题描述

我正在运行一个查询,表明 Redshift 在“SQL 错误 [500310][57014]:Amazon 无效操作:将文本转换为日期时出错;”

但是,当我删除联接表或从 WHERE 子句中删除转换时,它不再引发错误。因此,我怀疑发生了其他事情,并且此错误具有误导性。

我查看了数据,没有一个日期看起来很奇怪或超出范围。

这是引发错误的查询:

SELECT   m.member_id,
     t.tracker_id,
     DATE(ma.yyyymmdd) AS tracked_date,
     DATE(ma.updated_date) AS updated_date
FROM import_genesis.member_activities ma
INNER JOIN master."member" m
    ON ma.memberid = m.member_legacy_id
INNER JOIN master.action_activity aa
    ON ma.activity_type = aa.activity_type
INNER JOIN master.tracker t
    ON t.action_id = aa.action_id
WHERE DATE(ma.yyyymmdd) > DATE(DATEADD(DAY, -14, GETDATE()))
AND DATE(ma.yyyymmdd) <= GETDATE();

以下是两个不会引发错误的查询:

SELECT  DATE(ma.yyyymmdd) AS tracked_date,
        DATE(ma.updated_date) AS updated_date
FROM import_genesis.member_activities ma
WHERE DATE(ma.yyyymmdd) > DATE(DATEADD(DAY, -14, GETDATE()))
AND DATE(ma.yyyymmdd) <= GETDATE();
SELECT  m.member_id,
        t.tracker_id,
        DATE(ma.yyyymmdd) AS tracked_date,
        DATE(ma.updated_date) AS updated_date
FROM import_genesis.member_activities ma
INNER JOIN master."member" m
    ON ma.memberid = m.member_legacy_id
INNER JOIN master.action_activity aa
    ON ma.activity_type = aa.activity_type
INNER JOIN master.tracker t
    ON t.action_id = aa.action_id;

关于可能出现什么问题或任何潜在解决方法的任何想法?

标签: amazon-redshift

解决方案


推荐阅读