从 teradata 转换为 oracle

convert from teradata to oracle

请帮助我将以下用 teradata 编写的查询转换为 oracle sql。

SELECT cast((substr( CAST(CURRENT_TIMESTAMP(0) AS varchar(19)), 1,4) as decimal(18,0)) as termid from source1

你必须明确地使用 to_char 和时间戳,因为时间戳格式可以包含单词

  SELECT cast(substr( to_char(current_timestamp(0),'DDMM'), 1,4) 
  as decimal(18,0)) as termid from dual

如果你想要当前年份,这将在 Oracle 中完成:

select to_char(Current_Timestamp(0),'YYYY') termid from dual;

您当前的计算将年份提取为数值。在 Teradata 和 Oracle 中,这可以使用

轻松实现
extract(year from current_timestamp)