[
https://issues.apache.org/jira/browse/DRILL-8340?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17623100#comment-17623100
]
ASF GitHub Bot commented on DRILL-8340:
---------------------------------------
jnturton commented on code in PR #2689:
URL: https://github.com/apache/drill/pull/2689#discussion_r1003172295
##########
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;
Review Comment:
See below, I think that in that case we want this function defined for DATE
only using the convertlet stuff to convert it to `100*year()+week()` and a new
```
create function INT year_week_auto_parse(date_str VARCHAR) as
100*year(to_timestamp(date_str, 'auto')) + week(to_timestamp(date_str, 'auto'));
```
(assuming we can do these pure SQL UDFs). So we're composing general purpose
functions to get to the specific "What I need right now is a durable year_week
function" instead of hardcoding different behaviour into a new `year_week` to
what we offer for e.g. `year`, `month`, or `week`. The latter would leave users
frustrated by date extraction functions that arbitrarily (to them) work on
mixed format strings in some cases and not in others.
> Add Additional Date Manipulation Functions (Part 1)
> ---------------------------------------------------
>
> Key: DRILL-8340
> URL: https://issues.apache.org/jira/browse/DRILL-8340
> Project: Apache Drill
> Issue Type: Improvement
> Components: Functions - Drill
> Affects Versions: 1.20.2
> Reporter: Charles Givre
> Assignee: Charles Givre
> Priority: Major
> Fix For: 2.0.0
>
>
> This PR adds several utility functions to facilitate working with dates and
> times. These are modeled after the date/time functionality in MySQL.
> Specifically this adds:
> * YEARWEEK(<date>): Returns an int of year week. IE (202002)
> * TIME_STAMP(<date string>): Converts most anything that looks like a date
> string into a timestamp.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)