【发布时间】:2018-07-29 06:39:30
【问题描述】:
redshift 中是否有可用的 isdate 函数。我想将一个变量或列传递给函数,并找出该变量或列值是否为日期。如果有任何可用的 Udf,请更新相同。
【问题讨论】:
标签: amazon-redshift user-defined-functions
redshift 中是否有可用的 isdate 函数。我想将一个变量或列传递给函数,并找出该变量或列值是否为日期。如果有任何可用的 Udf,请更新相同。
【问题讨论】:
标签: amazon-redshift user-defined-functions
好吧,如果列的类型是DATE,那么它就是一个日期(但也可以是null)。
因此,任何其他类型的列不是DATE。
但是,您可以转换类型,例如采用VARCHAR 并尝试将其转换为日期(例如other_column::DATE)。如果它不起作用,我认为它会是null(但请测试它)。
更新:
您可以在COPY 命令中使用MAXERROR 告诉Redshift 即使出现错误也继续加载行。这些行将被跳过,但您可以查看 STL_LOAD_ERRORS - Amazon Redshift 以查看错误。
如果您不想跳过这些行,则需要将日期加载到 VARCHAR 字段中(这不会导致错误),稍后您需要将 VARCHAR 转换为 DATE .首选方法是将现有表复制到新表 (SELECT INTO...) 中,并进行列转换。 (在 Redshift 中执行 UDPATE 效率低下,因为它会导致行被删除并重新插入。)
【讨论】: