将自定义语句转换为可激活的代码

时间:2019-06-21 15:32:42

标签: sql function date netezza

我正在使用日期偏移量,并且试图“破解”以下日期函数

now() - interval '12 month'

我想创建一个可变的偏移量,而不是使用此偏移量,根据当前月份将月份添加到偏移量中。我创建了以下SQL:

SELECT now() ||' - interval ' || 
case when to_char(now(),'MON') in('FEB','MAY','AUG','NOV') then 0
     when to_char(now(),'MON') in('MAR','JUN','SEP','DEC') then 1
     when to_char(now(),'MON') in('JAN','APR','JUL','OCT') then 2
ELSE null END + 12 || ' month' TIME_OFFSET;

运行此命令时,将得到以下输出。

TIME_OFFSET  
2019-06-21 11:15:21 - interval 13 month

我试图让它运行我创建的功能以提供以下输出

2018-05-21 11:15:21

我如何获得退货?我需要更改什么?

1 个答案:

答案 0 :(得分:0)

只是想通了。

使用以下内容:

select add_months(now(), (-1 * 
case when to_char(now(),'MON') in('FEB','MAY','AUG','NOV') then 2
     when to_char(now(),'MON') in('MAR','JUN','SEP','DEC') then 0
     when to_char(now(),'MON') in('JAN','APR','JUL','OCT') then 1
ELSE null END) -12);

给你:

ADD_MONTHS
2018-06-21 16:10:52