在SQL UDF中传递格式

时间:2015-06-26 15:36:19

标签: sql casting teradata

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

这样的东西
cast(user_time as time(0) format user_format)

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

只是为了澄清,我正在使用Teradata 14,我必须使用SQL,所以C中的UDF对我来说不是一个真正的选择。 提前致谢

1 个答案:

答案 0 :(得分:1)

您无法将FORMAT作为参数传递给CAST。

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

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

比旧式Teradata CAST短得多:

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