云数据迁移 CDM-时间宏变量使用解析:dateformat
dateformat
dateformat支持两种形式的参数:
- dateformat(format)
format表示返回日期的格式,格式定义参考"java.text.SimpleDateFormat.java"中的定义。
例如当前日期为“2017-10-16 09:00:00”,则"yyyy-MM-dd HH:mm:ss"表示“2017-10-16 09:00:00”。
- dateformat(format, dateOffset, dateType)
- format表示返回日期的格式。
- dateOffset表示日期的偏移量。
- dateType表示日期的偏移量的类型。
目前dateType支持以下几种类型:SECOND(秒),MINUTE(分钟),HOUR(小时),DAY(天),MONTH(月),YEAR(年)。
其中MONTH(月),YEAR(年)的偏移量类型存在特殊场景:
- 对于年、月来说,若进行偏移后实际没有该日期,则按照日历取该月最大的日期。
- 不支持在源端和目的端的“时间过滤”参数中的起始时间、终止时间使用年、月的偏移。
例如当前日期为"2023-03-01 09:00:00",则:
- "dateformat(yyyy-MM-dd HH:mm:ss, -1, YEAR)"表示当前时间的前一年,也就是"2022-03-01 09:00:00"。
- "dateformat(yyyy-MM-dd HH:mm:ss, -3, MONTH)"表示当前时间的前三月,也就是"2022-12-01 09:00:00"。
- "dateformat(yyyy-MM-dd HH:mm:ss, -1, DAY)"表示当前时间的前一天,也就是"2023-02-28 09:00:00"。
- "dateformat(yyyy-MM-dd HH:mm:ss, -1, HOUR)"表示当前时间的前一小时,也就是"2023-03-01 08:00:00"。
- "dateformat(yyyy-MM-dd HH:mm:ss, -1, MINUTE)"表示当前时间的前一分钟,也就是"2023-03-01 08:59:00"。
- "dateformat(yyyy-MM-dd HH:mm:ss, -1, SECOND)"表示当前时间的前一秒,也就是"2023-03-01 08:59:59"。