У меня есть таблица со столбцом, содержащим значения даты и времени в различных форматах - с миллисекундами, без миллисекунд, с нулевым заполнением, без нулевого заполнения.
Мне нужно использовать эти данные для расчета временных интервалов. Итак, я написал функцию UDF для Python и попытался вызвать это в своем запросе. Но я получаю пустые значения при вызове таблицы и ошибку при вызове со строкой.
Моя функция UDF:
create or replace function everyonesdb.validateDate(tzDate varChar)
returns varchar
stable
as $$
from datetime import datetime
try:
return datetime.strftime(datetime.strptime(tzDate,'%Y-%m-%d %H:%M:%S:%f %z'),'%Y-%m-%d %H:%M:%S %z')
except ValueError:
pass
$$ language plpythonu;
Я называю это так:
Select validateDate('2018-04-19 09:29:52 +1000')
Ошибка, которую я получаю:
[Amazon](500310) Invalid operation: function validatedate("unknown") is not unique;
Я попробовал это и в своем запросе. При этом я просто получаю нулевые значения.
SELECT DISTINCT date_time_tz,
validateDate(date_time_tz) from table1
O / P:
date_time_tz validatedate
2018-04-19 12:37:33:359 +0800
2018-04-19 10:23:27:492 +1000
2018-04-19 11:02:58:810 +1000
2018-04-19 09:39:42:820 +1000
2018-04-19 10:30:18:017 +0530
2018-04-19 16:14:49:581 +1000
Это мой первый опыт использования Python UDF. Любая помощь будет принята с благодарностью.