正确地将日期从MySQL导入R

我的问题几乎是相同的 as this one.简而言之,我使用dplyr(以及RMySQL)导入带有日期时间列的MySQL表,我想将其转换为R中的日期.在上面链接的问题中,没有答案被张贴,只有哈德利评论. OP显然根据所做的评论找到了解决方案.我从Hadley的评论中了解到我可以通过将列作为日期正确导入R来解决问题.然后就不需要使用as.Date了.但是,我找不到如何用dplyr和RMySQL做到这一点.

我不知道如何发布一个完全可重现的例子,因为它是一个MySQL数据库连接,但我会发布我的代码:

如果我尝试:

pedidos <-  my_db %>%
tbl("pedidos") %>%
mutate(test = as.Date(DateSent))

然后我跑:

pedidos

R回报:

FUNCTION AS.DATE does not exist

就像其他问题中的OP一样,我可以使用collect()解决问题,但是它会破坏不将数据复制到内存中的目的.这里有一些关于MySQL数据类型的信息
DateSent是日期时间

和R sessionInfo():

R version 3.3.1 (2016-06-21)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

locale:
[1] LC_COLLATE=Portuguese_Brazil.1252 
[2] LC_CTYPE=Portuguese_Brazil.1252   
[3] LC_MONETARY=Portuguese_Brazil.1252
[4] LC_NUMERIC=C                      
[5] LC_TIME=Portuguese_Brazil.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets 
[6] methods   base     

other attached packages:
[1] RMySQL_0.10.11 DBI_0.5-1      dplyr_0.5.0   
[4] digest_0.6.12 

loaded via a namespace (and not attached):
[1] lazyeval_0.2.0 magrittr_1.5   R6_2.2.0      
[4] assertthat_0.1 rsconnect_0.5  tools_3.3.1   
[7] tibble_1.2     Rcpp_0.12.8  

最佳答案 我也应对了datetime列问题,但是简单的说法是,用 RMariaDB替换当前的MySQL DBI驱动程序是解决方案.

正如在这个问题中提到的评论,这个问题实际上已经在RMySQL from 0.11上游的开发中得到了解决,但唯一的问题是这个版本不能从官方CRAN存储库中获得.换句话说,如果您不介意通过devtools手动安装软件包,那么从RMySQL 0.11源代码安装就是这个问题的答案.

但正如自述文件中正式声明的那样,RMariaDB软件包将作为RMySQL驱动程序的替代品.当然,Datetime Support的功能也包含在RMariaDB包的主流中.更重要的是,版本1.0.6的最新版本可从CRAN官方存储库获得.

点赞