Skip to content

Commit f068442

Browse files
Added Support For More Formats For Get_Format
Signed-off-by: GabeFernandez310 <[email protected]>
1 parent de40f42 commit f068442

File tree

3 files changed

+39
-8
lines changed

3 files changed

+39
-8
lines changed

core/src/main/java/org/opensearch/sql/expression/datetime/DateTimeFunction.java

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -106,12 +106,27 @@ public class DateTimeFunction {
106106
// Map used to determine format output for the get_format function
107107
private static final Table<String, String, String> formats =
108108
ImmutableTable.<String, String, String>builder()
109-
//TODO: Add support for other formats
110-
.put("date", "usa", "%m.%d.%Y")
111-
.put("time", "usa", "%h:%i:%s %p")
112-
.put("datetime", "usa", "%Y-%m-%d %H.%i.%s")
113-
.put("timestamp", "usa", "%Y-%m-%d %H.%i.%s")
114-
.build();
109+
.put("date", "usa", "%m.%d.%Y")
110+
.put("date", "jis", "%Y-%m-%d")
111+
.put("date", "iso", "%Y-%m-%d")
112+
.put("date", "eur", "%d.%m.%Y")
113+
.put("date", "internal", "%Y%m%d")
114+
.put("datetime", "usa", "%Y-%m-%d %H.%i.%s")
115+
.put("datetime", "jis", "%Y-%m-%d %H:%i:%s")
116+
.put("datetime", "iso", "%Y-%m-%d %H:%i:%s")
117+
.put("datetime", "eur", "%Y-%m-%d %H.%i.%s")
118+
.put("datetime", "internal", "%Y%m%d%H%i%s")
119+
.put("time", "usa", "%h:%i:%s %p")
120+
.put("time", "jis", "%H:%i:%s")
121+
.put("time", "iso", "%H:%i:%s")
122+
.put("time", "eur", "%H.%i.%s")
123+
.put("time", "internal", "%H%i%s")
124+
.put("timestamp", "usa", "%Y-%m-%d %H.%i.%s")
125+
.put("timestamp", "jis", "%Y-%m-%d %H:%i:%s")
126+
.put("timestamp", "iso", "%Y-%m-%d %H:%i:%s")
127+
.put("timestamp", "eur", "%Y-%m-%d %H.%i.%s")
128+
.put("timestamp", "internal", "%Y%m%d%H%i%s")
129+
.build();
115130

116131
/**
117132
* Register Date and Time Functions.

core/src/test/java/org/opensearch/sql/expression/datetime/DateTimeFunctionTest.java

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -678,9 +678,25 @@ public void from_days() {
678678
private static Stream<Arguments> getTestDataForGetFormat() {
679679
return Stream.of(
680680
Arguments.of("DATE", "USA", "%m.%d.%Y"),
681+
Arguments.of("DATE", "JIS", "%Y-%m-%d"),
682+
Arguments.of("DATE", "ISO", "%Y-%m-%d"),
683+
Arguments.of("DATE", "EUR", "%d.%m.%Y"),
684+
Arguments.of("DATE", "INTERNAL", "%Y%m%d"),
681685
Arguments.of("DATETIME", "USA", "%Y-%m-%d %H.%i.%s"),
686+
Arguments.of("DATETIME", "JIS", "%Y-%m-%d %H:%i:%s"),
687+
Arguments.of("DATETIME", "ISO", "%Y-%m-%d %H:%i:%s"),
688+
Arguments.of("DATETIME", "EUR", "%Y-%m-%d %H.%i.%s"),
689+
Arguments.of("DATETIME", "INTERNAL", "%Y%m%d%H%i%s"),
690+
Arguments.of("TIME", "USA", "%h:%i:%s %p"),
691+
Arguments.of("TIME", "JIS", "%H:%i:%s"),
692+
Arguments.of("TIME", "ISO", "%H:%i:%s"),
693+
Arguments.of("TIME", "EUR", "%H.%i.%s"),
694+
Arguments.of("TIME", "INTERNAL", "%H%i%s"),
682695
Arguments.of("TIMESTAMP", "USA", "%Y-%m-%d %H.%i.%s"),
683-
Arguments.of("TIME", "USA", "%h:%i:%s %p")
696+
Arguments.of("TIMESTAMP", "JIS", "%Y-%m-%d %H:%i:%s"),
697+
Arguments.of("TIMESTAMP", "ISO", "%Y-%m-%d %H:%i:%s"),
698+
Arguments.of("TIMESTAMP", "EUR", "%Y-%m-%d %H.%i.%s"),
699+
Arguments.of("TIMESTAMP", "INTERNAL", "%Y%m%d%H%i%s")
684700
);
685701
}
686702

docs/user/dql/functions.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1772,7 +1772,7 @@ Usage: Returns a string value containing string format specifiers based on the i
17721772

17731773
Argument type: TYPE, STRING
17741774
TYPE must be one of the following tokens: [DATE, TIME, DATETIME, TIMESTAMP].
1775-
STRING must be one of the following tokens: ["USA"] (" can be replaced by ').
1775+
STRING must be one of the following tokens: ["USA", "JIS", "ISO", "EUR", "INTERNAL"] (" can be replaced by ').
17761776

17771777
Examples::
17781778

0 commit comments

Comments
 (0)