【发布时间】:2017-03-12 11:52:42
【问题描述】:
我需要按日期过滤数据使用 sqldf 包。
我的表“episodes”有一个字段“created_at,哪个类是 POSIXct。
episodes<-data.frame(created_at=seq(from = as.POSIXct('2016-10-01 01:00:00',tz="GMT"), length.out = 100, by = "days") )
> class(episodes$created_at)
[1] "POSIXct" "POSIXt"
我得到了第二次约会:
fechaMin=min(episodes$created_at)
library(lubridate)
fechaSig=fechaMin+hours(24)
然后我过滤数据:
sqldf("SELECT * from episodes e
where strftime('%Y/%m/%d', e.created_at, 'unixepoch')>='$fechaSig' ")
但是我得到了所有的数据。过滤器不起作用。
我也试过了,没有成功:
sqldf("SELECT * from episodes e
where date(e.created_at, 'unixepoch', 'localtime')>='$fechaSig' ")
【问题讨论】:
-
只有最新版本的 MySQL 支持
Datetime,这需要保持POSIXct“在正确的类中”——所以检查你的支持。就其价值而言,PostgreSQL 自 1990 年代以来就拥有它。 -
@DirkEddelbuettel 实际上,在 R 中使用已在 R 中创建的表存在相同的问题 - 请参阅版本。