Teradata SQL:从时间戳中提取时间

Teradata SQL: Extract time from Timestamp

在处理像“29-03-2021 15:30:02”这样的时间戳时,我通常使用像这样的运算符:

Year(Timestamp) AS Event_Year
Month(Timestamp) AS Event_Month
Week(Timestamp) AS Event_Week
Hour(Timestamp) AS Event_Hour

但这次我需要提取时间,有一列 '15:30:02'

我在想 Time(Timestamp) as Event_Time 之类的东西,但它看起来不像命令。有什么聪明的解决方案可以解决这个问题吗?

如果它已经是 Timestamp 数据类型,您可以像这样使用 cast

CAST(fieldname AS TIME)

或者如果它仍然是一个字符串,我认为你必须这样做:

CAST(CAST(fieldname AS TIMESTAMP FORMAT 'dd-mm-yyyyBhh:mi:SS.s(1)') AS TIME)

(我忘记了时区标识符的正确语法)