在SQL语句中设置参数

如果我们每天早上只需要导入前一天的数据,这也就意味着我们需要在不同的时间执行不同的SQL语句来获取数据。那么如何来生成这样的动态SQL语句呢?这里,我们就用到“自定义字段”的设置。

在“管理”页面,我们可以找到“自定义字段”列表。默认情况下,我们预设置了两个自定义参数:TODATDATEYESTERDAY_DATE

比如今天是 2017年10月16日,那么这两个参数的值将会被自动计算,

  • today_date : 2017-10-16
  • yesterday_date : 2017-10-15

那么如果在定义数据集更新计划时, SQL被配置为:

select customer_id, max(customer_name), sum(sales)
from sales_orders
where order_date = '${yesterday_date}'
group by customer_id

则该SQL被执行时,${yesterday_date} 将会被替换为 2017-10-15。

当然,日期的格式也可以定制。比如,公司的数据库中是用的类似于 “20171017”的格式来存储的日期,那么我们可以添加一个新的自定义参数为:

YESTERDAY_DATE_SHORT: new org.joda.time.LocalDate().minusDays(1).toString('yyyyMMdd')

那么这个参数的格式就对应 “20170313”这种格式。 相比之前的设置,唯一修改的地方是把日期的格式化string由 ‘yyyy-MM-dd’ 替换为 ‘yyyyMMdd’。

results matching ""

    No results matching ""