在redshift中是否有可用的isdate函数。我想将变量或列传递给函数,并找出该变量或列的值是否为日期。如果有可用的Udf,请进行更新。
答案 0 :(得分:0)
好吧,如果列的类型为DATE
,则它是一个日期(但可以是null
)。
因此,其他任何类型的列都不是DATE
。
但是,您可以转换类型,例如使用VARCHAR
并尝试将其转换为日期(例如other_column::DATE
)。如果不起作用,我认为它应该是null
(但请对其进行测试)。
更新:
您可以在MAXERROR
命令中使用COPY
来告诉Redshift即使出现错误也要继续加载行。这些行将被跳过,但是您可以查看STL_LOAD_ERRORS - Amazon Redshift来查看错误。
如果您不想跳过这些行,则需要将日期加载到VARCHAR
字段中(这不会导致错误),稍后您需要将VARCHAR
转换为DATE
。首选的方法是使用列转换将现有表复制到新表(SELECT INTO...
)中。 (在Redshift中执行UDPATE
效率很低,因为它会导致行被删除并重新插入。)