我有一个包含DateTime的表,格式为'MM/DD/YYYY :MI‘--现在我试图将这次转换为Teradata时间戳,但得到了一个错误。
我试过的是:
选择cast('4/13/2022 0:00‘作为时间戳(0)格式'mm/dd/yyyyBhh:mi')
但是它返回无效的时间戳错误。有什么办法吗?
诚挚的问候。
发布于 2022-07-15 14:17:13
这里有个位数的月和小时值。我认为除了增加领先的0,没有任何方法可以让Teradata对那些东西表现得很好。
我认为这应该是可行的,但你会想要彻底测试它。
select cast (regexp_replace('4/13/2022 0:00', '\b([0-9])\b', '0\1') AS TIMESTAMP(0) Format 'mm/dd/yyyyBhh:mi')发布于 2022-07-20 06:01:43
经过不同的解决方案,这是可行的。
CASE WHEN CHAR_LENGTH( STRTOK(ACT_TIME, '/', 1)) = 1 THEN TO_TIMESTAMP( '0' || ACT_TIME, 'MM/DD/YYYY HH24:MI') END ACT_TIME_TIMESTAMP
,CASE WHEN CHAR_LENGTH( STRTOK(ACT_TIME, '/', 1)) = 1 THEN CAST(TO_TIMESTAMP( '0' || ACT_TIME, 'MM/DD/YYYY HH24:MI') AS DATE) END ACT_TIME_DATE
,CASE WHEN CHAR_LENGTH( STRTOK(ACT_TIME, '/', 1)) = 1 THEN CAST(TO_TIMESTAMP( '0' || ACT_TIME, 'MM/DD/YYYY HH24:MI') AS TIME) END ACT_TIME_DATEhttps://stackoverflow.com/questions/72990777
复制相似问题