我根据用户输入的日期查询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并且如果表中不存在该日期,则将开始日期更改为第一个可用日期并再次运行查询。
据我所知,这需要两次传递日期和查询,但我希望能够迭代执行,而无需手动检查日期。
答案 0 :(得分:0)
您的查询将为您提供一年的数据或table
中提供的所有数据,这似乎是您的要求。但是,如果您在选择数据之前需要知道是否有超过一年的数据,那么您可以使用
SELECT MIN(date) FROM table
获取最早的日期。