Package org.h2.util
Class IntervalUtils
java.lang.Object
org.h2.util.IntervalUtils
This utility class contains interval conversion functions.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final BigIntegerThe number of nanoseconds per day as BigInteger. -
Method Summary
Modifier and TypeMethodDescriptionstatic StringBuilderappendInterval(StringBuilder buff, IntervalQualifier qualifier, boolean negative, long leading, long remaining) Formats interval as a string and appends it to a specified string builder.static longdaysFromInterval(IntervalQualifier qualifier, boolean negative, long leading, long remaining) Returns days value of interval, if any.static longhoursFromInterval(IntervalQualifier qualifier, boolean negative, long leading, long remaining) Returns hours value of interval, if any.static ValueIntervalintervalFromAbsolute(IntervalQualifier qualifier, BigInteger absolute) Converts absolute value to an interval value.static BigIntegerintervalToAbsolute(ValueInterval interval) Converts interval value to an absolute value.static longminutesFromInterval(IntervalQualifier qualifier, boolean negative, long leading, long remaining) Returns minutes value of interval, if any.static longmonthsFromInterval(IntervalQualifier qualifier, boolean negative, long leading, long remaining) Returns months value of interval, if any.static longnanosFromInterval(IntervalQualifier qualifier, boolean negative, long leading, long remaining) Returns nanoseconds value of interval, if any.static ValueIntervalparseFormattedInterval(IntervalQualifier qualifier, String s) Parses the specified string asINTERVALvalue.static ValueIntervalparseInterval(IntervalQualifier qualifier, boolean negative, String s) Parses the specified string asINTERVALvalue.static booleanvalidateInterval(IntervalQualifier qualifier, boolean negative, long leading, long remaining) Ensures that all fields in interval are valid.static longyearsFromInterval(IntervalQualifier qualifier, boolean negative, long leading, long remaining) Returns years value of interval, if any.
-
Field Details
-
NANOS_PER_DAY_BI
The number of nanoseconds per day as BigInteger.
-
-
Method Details
-
parseFormattedInterval
Parses the specified string asINTERVALvalue.- Parameters:
qualifier- the default qualifier to use if string does not have ones- the string with type information to parse- Returns:
- the interval value. Type of value can be different from the specified qualifier.
-
parseInterval
Parses the specified string asINTERVALvalue.- Parameters:
qualifier- the qualifier of intervalnegative- whether the interval is negatives- the string to parse- Returns:
- the interval value
-
appendInterval
public static StringBuilder appendInterval(StringBuilder buff, IntervalQualifier qualifier, boolean negative, long leading, long remaining) Formats interval as a string and appends it to a specified string builder.- Parameters:
buff- string builder to append toqualifier- qualifier of the intervalnegative- whether interval is negativeleading- the value of leading fieldremaining- the value of all remaining fields- Returns:
- the specified string builder
-
intervalToAbsolute
Converts interval value to an absolute value.- Parameters:
interval- the interval value- Returns:
- absolute value in months for year-month intervals, in nanoseconds for day-time intervals
-
intervalFromAbsolute
Converts absolute value to an interval value.- Parameters:
qualifier- the qualifier of intervalabsolute- absolute value in months for year-month intervals, in nanoseconds for day-time intervals- Returns:
- the interval value
-
validateInterval
public static boolean validateInterval(IntervalQualifier qualifier, boolean negative, long leading, long remaining) Ensures that all fields in interval are valid.- Parameters:
qualifier- qualifiernegative- whether interval is negativeleading- value of leading fieldremaining- values of all remaining fields- Returns:
- fixed value of negative field
-
yearsFromInterval
public static long yearsFromInterval(IntervalQualifier qualifier, boolean negative, long leading, long remaining) Returns years value of interval, if any.- Parameters:
qualifier- qualifiernegative- whether interval is negativeleading- value of leading fieldremaining- values of all remaining fields- Returns:
- years, or 0
-
monthsFromInterval
public static long monthsFromInterval(IntervalQualifier qualifier, boolean negative, long leading, long remaining) Returns months value of interval, if any.- Parameters:
qualifier- qualifiernegative- whether interval is negativeleading- value of leading fieldremaining- values of all remaining fields- Returns:
- months, or 0
-
daysFromInterval
public static long daysFromInterval(IntervalQualifier qualifier, boolean negative, long leading, long remaining) Returns days value of interval, if any.- Parameters:
qualifier- qualifiernegative- whether interval is negativeleading- value of leading fieldremaining- values of all remaining fields- Returns:
- days, or 0
-
hoursFromInterval
public static long hoursFromInterval(IntervalQualifier qualifier, boolean negative, long leading, long remaining) Returns hours value of interval, if any.- Parameters:
qualifier- qualifiernegative- whether interval is negativeleading- value of leading fieldremaining- values of all remaining fields- Returns:
- hours, or 0
-
minutesFromInterval
public static long minutesFromInterval(IntervalQualifier qualifier, boolean negative, long leading, long remaining) Returns minutes value of interval, if any.- Parameters:
qualifier- qualifiernegative- whether interval is negativeleading- value of leading fieldremaining- values of all remaining fields- Returns:
- minutes, or 0
-
nanosFromInterval
public static long nanosFromInterval(IntervalQualifier qualifier, boolean negative, long leading, long remaining) Returns nanoseconds value of interval, if any.- Parameters:
qualifier- qualifiernegative- whether interval is negativeleading- value of leading fieldremaining- values of all remaining fields- Returns:
- nanoseconds, or 0
-