【问题标题】:R sqldf package Month function [duplicate]R sqldf包月份函数[重复]
【发布时间】:2015-11-07 02:28:11
【问题描述】:

我正在尝试在 sqldf 中使用本机 sql 函数,例如 month。我不确定为什么这不起作用。数据框中有我从中提取的月度数据,所以我不明白。如果我在 dbGetQuery 中对其进行子集化,那么它可以工作,因为它是直接从 MySQL 数据库中提取的,但是当我尝试对 sqldf 包执行相同操作时,它会失败。

sqldf("select * from data_old_cust where month(order_date) = 1", drv = 'SQLite')

sqliteSendQuery(con, statement, bind.data) 中的错误:错误 声明:没有这样的功能:月

【问题讨论】:

    标签: mysql r sqldf


    【解决方案1】:

    默认情况下,sqldf 通过 RSQLite 驱动程序 R 包使用 SQLite,month 不是 SQLite 支持的函数,也不是 RSQLite 支持的扩展函数之一。在 sqldf 主页https://github.com/ggrothendieck/sqldf 上有一些处理日期的示例,这里有关于 SQLite 日期函数的信息:https://www.sqlite.org/lang_datefunc.html 并且从这些资源中您可以找到其他函数。

    如果您将 sqldf 与 RH2 R 软件包支持的 H2 数据库一起使用,则支持 month。例如,

    library(RH2)
    library(sqldf)
    DF <- data.frame(d = as.Date("2000-08-15"))
    
    sqldf("select month(d) from DF")
    

    给予:

       MONTH("d")
     1          8
    

    【讨论】:

      猜你喜欢
      • 2015-10-03
      • 2017-03-16
      • 2022-08-09
      • 1970-01-01
      • 2018-12-19
      • 1970-01-01
      • 1970-01-01
      • 2017-06-18
      • 1970-01-01
      相关资源
      最近更新 更多