cgivre commented on code in PR #2689:
URL: https://github.com/apache/drill/pull/2689#discussion_r1005765333


##########
contrib/udfs/src/main/java/org/apache/drill/exec/udfs/DateFunctions.java:
##########
@@ -140,8 +143,77 @@ public void eval() {
       java.time.format.DateTimeFormatter formatter = 
java.time.format.DateTimeFormatter.ofPattern(format);
       java.time.LocalDateTime dateTime = 
java.time.LocalDateTime.parse(inputDate, formatter);
 
-      java.time.LocalDateTime td = 
org.apache.drill.exec.udfs.NearestDateUtils.getDate(dateTime, intervalString);
+      java.time.LocalDateTime td = DateConversionUtils.getDate(dateTime, 
intervalString);
       out.value = 
td.atZone(java.time.ZoneId.of("UTC")).toInstant().toEpochMilli();
     }
   }
+
+  @FunctionTemplate(names = {"yearweek","year_week"},
+    scope = FunctionTemplate.FunctionScope.SIMPLE,
+    nulls = FunctionTemplate.NullHandling.NULL_IF_NULL)
+  public static class YearWeekFunction implements DrillSimpleFunc {
+    @Param
+    VarCharHolder inputHolder;
+
+    @Output
+    IntHolder out;
+
+    @Override
+    public void setup() {
+      // noop
+    }
+
+    @Override
+    public void eval() {
+      String input = 
org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.toStringFromUTF8(inputHolder.start,
 inputHolder.end, inputHolder.buffer);
+      java.time.LocalDateTime dt = 
org.apache.drill.exec.udfs.DateUtilFunctions.getTimestampFromString(input);
+      int week = dt.get(java.time.temporal.IsoFields.WEEK_OF_WEEK_BASED_YEAR);
+      int year = dt.getYear();
+      out.value = (year * 100) + week;
+    }
+  }
+
+  @FunctionTemplate(names = {"yearweek","year_week"},

Review Comment:
   @jnturton We don't have `year()` and `week()` functions unfortunately.  I do 
plan on adding those as well as `quarter()` and a few others.  It is possible 
now to do some of that but the syntax is really non-intuitive.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@drill.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to