在 SQL UDF 中传递格式

Passing format in a SQL UDF

我正在制作一个简单的 SQL UDF,从 char/varchar 转换到时间。 因为它应该是通用的,我希望用户指定他输入的格式,所以我可以只使用类似

cast(user_time as time(0) format user_format)

但它不起作用。 我想知道是否可以将格式用作 UDF 参数,如果可以,应该如何在此转换中使用它。我可以将它分开以读取格式并使时间匹配,但如果有更简单的方法,我宁愿避免它。

澄清一下,我使用的是 Teradata 14,而且我必须使用 SQL,因此 C 中的 UDF 对我来说并不是一个真正的选择。 提前致谢

您不能将 FORMAT 作为参数传递给 CAST。

您也许可以使用 TO_TIMESTAMP 来执行此操作,但为什么需要 UDF?

myUDF('12:34:45', 'hh:mi:ss') 

并不比旧式 Teradata CAST 短多少:

hh:mi:ss' (time(0), FORMAT 'hh:mi:ss')