ROracle具有日期变量,并且Months_Between函数出现问题

时间:2019-03-21 17:19:33

标签: roracle

我试图在RStudio中使用ROracle在Oracle 12C数据库上运行一些SQL,我需要使用日期变量。

如果我运行此命令:-

         Sys.setenv(ORA_SDTZ = "GMT")
         Sys.setenv(TZ = "GMT")
         strdate <- Sys.Date() - 20

         dat <- dbGetQuery(conn
                        ,"SELECT add_months(:1,-5) from Dual" 
                        ,data = data.frame(strdate) )

我得到了预期的结果,即今天前20天

但是如果我运行它:-

         Sys.setenv(ORA_SDTZ = "GMT")
         Sys.setenv(TZ = "GMT")
         strdate <- Sys.Date() - 20

         dat <- dbGetQuery(conn
                        ,"SELECT add_months(:1,-5) 
                        ,FLOOR(MONTHS_BETWEEN(sysdate, :1) ) from Dual"
                        ,data = data.frame(strdate) )

我收到以下错误:-

      Error in .oci.GetQuery(conn, statement, data = data, prefetch = 
      prefetch,  : bind data does not match bind specification

我也尝试过:-

        dat <- dbGetQuery(conn, "SELECT add_months( TO_DATE (TO_CHAR (:1, 'DD/MM/YYYY'), 'DD/MM/YYYY'),-5) 
              ,FLOOR(MONTHS_BETWEEN(sysdate,  TO_DATE (TO_CHAR (:1, 'DD/MM/YYYY'), 'DD/MM/YYYY')) ) from Dual", data = data.frame(strdate) )

但这也不起作用。

任何帮助表示赞赏。

0 个答案:

没有答案