【发布时间】:2017-08-25 08:27:38
【问题描述】:
我正在根据用户输入的日期从 sql 表中查询一些数据,如下所示:
dt = as.Date(some_date)
# Manipulate dates
end_date = as.Date(dt)
begin_date = as.character(as.Date(end_date) - 364)
在此之后发生的情况是,日期字段位于开始日期和结束日期之间的表中的所有记录都将被提取。
qry <- paste0("select * from table
where date>= '", begin_date, "' and date <= '", end_date; ")
但有时可能会发生我没有 1 年的数据,而只有 10 或 9 或 8 个月的数据。 所以我希望能够根据表中的第一个日期更改 364 值。 那么在 R 中是否有任何方法可以提取以开始日期为 end_date - 364 的记录,如果表中不存在该日期,则将开始日期更改为第一个可用日期并再次运行查询。
我知道这需要两次传递日期和查询,但我希望能够迭代地执行此操作,而无需手动检查日期。
【问题讨论】:
-
您可能正在寻找类似的东西 -
qry <- paste0("select * from table where date >= max('", begin_date,"', (select min(date) from table))", " and date <= '", end_date, "';")