Package org.h2.expression.function
Class DateTimeFormatFunction
- java.lang.Object
-
- org.h2.expression.Expression
-
- org.h2.expression.OperationN
-
- org.h2.expression.function.FunctionN
-
- org.h2.expression.function.DateTimeFormatFunction
-
- All Implemented Interfaces:
ExpressionWithVariableParameters
,NamedExpression
,HasSQL
,Typed
public final class DateTimeFormatFunction extends FunctionN
A date-time format function.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
DateTimeFormatFunction.CacheKey
private static class
DateTimeFormatFunction.CacheValue
-
Field Summary
Fields Modifier and Type Field Description private static java.util.LinkedHashMap<DateTimeFormatFunction.CacheKey,DateTimeFormatFunction.CacheValue>
CACHE
static int
FORMATDATETIME
FORMATDATETIME() (non-standard).private int
function
private static java.lang.String[]
NAMES
static int
PARSEDATETIME
PARSEDATETIME() (non-standard).-
Fields inherited from class org.h2.expression.OperationN
args, argsCount, type
-
Fields inherited from class org.h2.expression.Expression
AUTO_PARENTHESES, MAP_IN_AGGREGATE, MAP_IN_WINDOW, MAP_INITIAL, WITH_PARENTHESES, WITHOUT_PARENTHESES
-
Fields inherited from interface org.h2.util.HasSQL
ADD_PLAN_INFORMATION, DEFAULT_SQL_FLAGS, NO_CASTS, QUOTE_ONLY_WHEN_REQUIRED, REPLACE_LOBS_FOR_TRACE, TRACE_SQL_FLAGS
-
-
Constructor Summary
Constructors Constructor Description DateTimeFormatFunction(int function)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static java.lang.String
formatDateTime(SessionLocal session, Value date, java.lang.String format, java.lang.String locale, java.lang.String timeZone)
Formats a date using a format string.private static DateTimeFormatFunction.CacheValue
getDateFormat(java.lang.String format, java.lang.String locale, java.lang.String timeZone)
java.lang.String
getName()
Get the name.Value
getValue(SessionLocal session, Value v1, Value v2, Value v3)
Returns the value of this function.private static java.time.ZoneId
getZoneId(java.lang.String timeZone)
Expression
optimize(SessionLocal session)
Try to optimize the expression.static ValueTimestampTimeZone
parseDateTime(SessionLocal session, java.lang.String date, java.lang.String format, java.lang.String locale, java.lang.String timeZone)
Parses a date using a format string.-
Methods inherited from class org.h2.expression.function.FunctionN
getUnenclosedSQL, getValue
-
Methods inherited from class org.h2.expression.OperationN
addParameter, doneWithParameters, getCost, getSubexpression, getSubexpressionCount, getType, isEverything, mapColumns, optimizeArguments, setEvaluatable, updateAggregate
-
Methods inherited from class org.h2.expression.Expression
addFilterConditions, createIndexConditions, getAlias, getBooleanValue, getColumnName, getColumnNameForView, getEnclosedSQL, getNonAliasExpression, getNotIfPossible, getNullable, getSchemaName, getSQL, getSQL, getSQL, getSQL, getTableAlias, getTableName, getWhenSQL, getWhenValue, isConstant, isIdentity, isNullConstant, isValueSet, isWhenConditionOperand, needParentheses, optimizeCondition, toString, writeExpressions, writeExpressions
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.h2.util.HasSQL
getTraceSQL
-
-
-
-
Field Detail
-
FORMATDATETIME
public static final int FORMATDATETIME
FORMATDATETIME() (non-standard).- See Also:
- Constant Field Values
-
PARSEDATETIME
public static final int PARSEDATETIME
PARSEDATETIME() (non-standard).- See Also:
- Constant Field Values
-
NAMES
private static final java.lang.String[] NAMES
-
CACHE
private static final java.util.LinkedHashMap<DateTimeFormatFunction.CacheKey,DateTimeFormatFunction.CacheValue> CACHE
-
function
private final int function
-
-
Method Detail
-
getValue
public Value getValue(SessionLocal session, Value v1, Value v2, Value v3)
Description copied from class:FunctionN
Returns the value of this function.
-
formatDateTime
public static java.lang.String formatDateTime(SessionLocal session, Value date, java.lang.String format, java.lang.String locale, java.lang.String timeZone)
Formats a date using a format string.- Parameters:
session
- the sessiondate
- the date to formatformat
- the format stringlocale
- the localetimeZone
- the time zone- Returns:
- the formatted date
-
parseDateTime
public static ValueTimestampTimeZone parseDateTime(SessionLocal session, java.lang.String date, java.lang.String format, java.lang.String locale, java.lang.String timeZone)
Parses a date using a format string.- Parameters:
session
- the sessiondate
- the date to parseformat
- the parsing formatlocale
- the localetimeZone
- the time zone- Returns:
- the parsed date
-
getDateFormat
private static DateTimeFormatFunction.CacheValue getDateFormat(java.lang.String format, java.lang.String locale, java.lang.String timeZone)
-
getZoneId
private static java.time.ZoneId getZoneId(java.lang.String timeZone)
-
optimize
public Expression optimize(SessionLocal session)
Description copied from class:Expression
Try to optimize the expression.- Specified by:
optimize
in classExpression
- Parameters:
session
- the session- Returns:
- the optimized expression
-
getName
public java.lang.String getName()
Description copied from interface:NamedExpression
Get the name.- Returns:
- the name in uppercase
-
-