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)
(我忘记了时区标识符的正确语法)
在处理像“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)
(我忘记了时区标识符的正确语法)