@Override
    public Object parse(SourceData sourceData, int rowIndex, Context context) {
        Object leftDateObj = leftDateParser.parse(sourceData, rowIndex, context);
        Object rightDateObj = rightDateParser.parse(sourceData, rowIndex, context);
        if (leftDateObj == null || rightDateObj == null) {
            return null;
        }
        String leftDate = OperatorTools.parseString(leftDateObj);
        String rightDate = OperatorTools.parseString(rightDateObj);
        if (leftDate.isEmpty() || rightDate.isEmpty()) {
            return null;
        }
        try {
            LocalDate left = Objects.requireNonNull(DateUtil.parseLocalDateTime(leftDate)).toLocalDate();
            LocalDate right = Objects.requireNonNull(DateUtil.parseLocalDateTime(rightDate)).toLocalDate();
            return ChronoUnit.DAYS.between(right, left);
        } catch (Exception e) {
            return null;
        }
    }
DateDiffFunction  ->  datediff(dateStr1, dateStr2)
Description:
- Return null if one of the two parameters is null or ""
- Return null if one of the two parameters has an incorrect date format
- Return the number of days between the dates dateStr1->dateStr2.
inlong-sdk/transform-sdk/src/main/java/org/apache/inlong/sdk/transform/process/function/temporal/DateDiffFunction.java