Sql 编写包含两种不同日期格式的循环
我需要使用R来编写一个来自我的R环境所连接的数据库的查询。查询的结构如下所示:Sql 编写包含两种不同日期格式的循环,sql,r,Sql,R,我需要使用R来编写一个来自我的R环境所连接的数据库的查询。查询的结构如下所示: ALTER TABLE cph.table_id ADD PARTITION (event_date = 'YYYY-MM-DD') LOCATION 's3://external-dwh-company-com/id-to-idl/YYYYMMDD' 例如,今天的新增内容如下: ALTER TABLE cph.table_id ADD PARTITION (event_date = '2018-08-02') L
ALTER TABLE cph.table_id ADD PARTITION (event_date = 'YYYY-MM-DD')
LOCATION 's3://external-dwh-company-com/id-to-idl/YYYYMMDD'
例如,今天的新增内容如下:
ALTER TABLE cph.table_id ADD PARTITION (event_date = '2018-08-02')
LOCATION 's3://external-dwh-company-com/id-to-idl/20180802'
问题是,我需要对2018年1月3日之前的所有数据都这样做
因此,步骤如下所示:
initial_query <- paste(#however the above query would be formatted with the dates)
results_query <- dbGetQuery(conn, initial_query)
initial_query考虑使用lapply
和seq
在目标开始日期后的天数范围内循环,将字符串与sprintf
和相应的日期格式连接起来:
# GET DIFFERENCE BETWEEN TODAY AND DESIRED BEGIN DATE
date_diff <- Sys.Date() - as.Date("2018-03-01")
date_diff[[1]]
# 155
sql <- "ALTER TABLE cph.table_id ADD PARTITION (event_date = '%s')
LOCATION 's3://external-dwh-company-com/id-to-idl/%s'"
# RUN QUERY SEQUENTIALLY ADDING TO BEGIN DATE
output <- lapply(seq(1, date_diff[[1]]), function(i)
dbGetQuery(conn, sprintf(sql, strftime(as.Date("2018-03-01") + i, "%Y-%m-%d"),
strftime(as.Date("2018-03-01") + i, "%Y%m%d"))))
#获取今天和所需开始日期之间的差异
date_diff是否确实要为每天添加分区?记录是否为每小时/分钟级别?或者每个事件日期有数百万行?这是什么RDBMS?@Parfait是的。你所说的关系数据库管理系统是什么意思?