我在redshift中创建了python UDF,用于检查我的数据是否有有效的日期条目(如果没有,则返回NULL)
UDF创建成功,但当我将值传递给函数时,它的抛出错误
Python代码在googlecolab中运行良好。但不是红移
CREATE OR REPLACE FUNCTION public.fn_isdate(date_text character varying)
RETURNS timestamp without time zone
stable
as $$
import datetime
def validate(dt):
try:
ti = datetime.datetime.strptime(dt,'%m/%d/%Y')
return ti.strftime('%m/%d/%Y')
except TypeError:
return None
except ValueError:
try:
ti = datetime.datetime.strptime(dt, '%Y-%m-%d')
return ti.strftime('%m/%d/%Y')
except ValueError:
return None
return validate(date_text)
$$ language plpythonu;
我期望12/22/2003
这个-SELECT public.fn_isdate('2003-12-22');
和
NULL
对于这个-SELECT public.fn_isdate('03-12-22');
将函数声明为返回
timestamp without time zone
,然后返回pythonstring
。 不将日期转换为字符串会产生以下效果:然后:
退货:
相关问题 更多 >
编程相关推荐