时间宏变量使用解析 Where子句中的时间宏变量 以SQOOP.CDM20171016表为例,该表中存在表示时间的列DS,如下图“表数据”所示: 假设当前时间为“20171016”,要导出前一天的数据(即DS‘20171015’),则可以在创建作业时配置“Where子句”为 DS'${dateformat(yyyyMMdd,1,DAY)}' ,即可将符合DS‘20171015’条件的数据导出。 时间宏变量和定时任务配合完成增量同步 这里列举两个简单的使用场景: 数据库表中存在表示时间的列DS,类型为“varchar(30)”,插入的时间格式类似于“2017xxxx”。 定时任务中,重复周期为1天,每天的凌晨0点执行定时任务。配置“Where子句”为 DS'${dateformat(yyyyMMdd,1,DAY)}' ,这样就可以在每天的凌晨0点导出前一天产生的所有数据。 数据库表中存在表示时间的列time,类型为“Number”,插入的时间格式为时间戳。 定时任务中,重复周期为1天,每天的凌晨0点执行定时任务。配置“Where子句”为 time between {timestamp(1,DAY)} and {timestamp()} ,这样就可以在每天的凌晨0点导出前一天产生的所有数据。 其它的配置方式原理相同。