2010-07-09 91 views
0

我有以下SQL查询:转换查询到Oracle

SELECT 
@weekenddtm = CONVERT(VARCHAR,DATEADD(DD,(7 - DATEPART(DW,@p_end_dtm)),@p_end_dtm),111) 

,我尝试使用此查询其转换到Oracle:

v_weekenddtm := CAST(p_end_dtm + NUMTODSINTERVAL((7-TO_NUMBER(TO_CHAR(p_end_dtm,'D'))),'DAY') AS DATE); 

,但它给我的错误。任何想法如何继续?

+0

你想如何“从SQL转换”?与所有主要的RDBMS一样,Oracle也使用SQL。 SQL是所有主要数据库系统的数据查询和数据定义语言...... – 2010-07-09 07:57:37

+0

如果您发布代码或XML,请**在文本编辑器中突出显示这些行,然后单击“代码”按钮(101 010)在编辑器工具栏上进行很好的格式化和语法突出显示! – 2010-07-09 07:58:55

+1

此外,如果您复制并粘贴了错误消息,则不是“错误”,而是“帮助”。 “从SQL到Oracle *”*“ – 2010-07-09 08:27:59

回答

1

p_end_dtm和v_weekend_dtm的数据类型是什么?如果你的代码如下所示:

declare 
    p_end_dtm timestamp; 
    v_weekend_dtm date; 
begin 
    v_weekend_dtm := CAST(p_end_dtm+ NUMTODSINTERVAL((7-TO_NUMBER(TO_CHAR(p_end_dtm,'D'))),'DAY') AS DATE); 
end;