我正在尝试使用 dbplyr 包计算 R 中两个日期之间的月差,我想发送 sql 查询以使用 mysql 中的“timestampdiff”本机函数计算它,但出现错误:
library(tidyverse)
library(lubridate)
library(dbplyr)
db_df <- tbl(con, "creditos")
db_df %>% mutate(diff_month = timestampdiff(month, column_date_1, column_date_2))
但参数month
没有被正确翻译,因为它看起来像 R 中的对象或函数:
UseMethod(“escape”)中的错误:没有适用于“escape”的方法应用于“function”类的对象
如果这样写:
db_df %>% mutate(diff_month = timestampdiff("month", column_date_1, column_date_2))
我也会得到一个错误:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在
month
,column_date_1
,column_date_2
) AS附近使用的正确语法diff_month
我相信这是因为 dbplyr 正在将带有双引号的“月”写入 mysql,它应该没有双引号,如下所示:
TIMESTAMPDIFF(month, column_date_1, column_date_2) AS `diff_month`
或者有没有更好的方法来使用 dbplyr 计算月差?