Class Interval
- java.lang.Object
-
- org.h2.api.Interval
-
public final class Interval extends java.lang.ObjectINTERVAL representation for result sets.
-
-
Field Summary
Fields Modifier and Type Field Description private longleadingNon-negative long with value of leading field.private booleannegativefalsefor zero or positive intervals,truefor negative intervals.private IntervalQualifierqualifierprivate longremainingNon-negative long with combined value of all remaining field, or 0 for single-field intervals, with exception for INTERVAL SECOND that uses this field to store fractional part of seconds measured in nanoseconds.
-
Constructor Summary
Constructors Constructor Description Interval(IntervalQualifier qualifier, boolean negative, long leading, long remaining)Creates a new interval.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(java.lang.Object obj)longgetDays()Returns days value, if any.longgetHours()Returns hours value, if any.longgetLeading()Returns value of leading field of this interval.longgetMinutes()Returns minutes value, if any.longgetMonths()Returns months value, if any.longgetNanosOfSecond()Returns value of fractional part of seconds (in nanoseconds), if any.IntervalQualifiergetQualifier()Returns qualifier of this interval.longgetRemaining()Returns combined value of remaining fields of this interval.longgetSeconds()Returns value of integer part of seconds, if any.longgetSecondsAndNanos()Returns seconds value measured in nanoseconds, if any.longgetYears()Returns years value, if any.inthashCode()booleanisNegative()Returns where the interval is negative.static IntervalofDays(long days)Creates a new INTERVAL DAY.static IntervalofDaysHours(long days, int hours)Creates a new INTERVAL DAY TO HOUR.static IntervalofDaysHoursMinutes(long days, int hours, int minutes)Creates a new INTERVAL DAY TO MINUTE.static IntervalofDaysHoursMinutesNanos(long days, int hours, int minutes, long nanos)Creates a new INTERVAL DAY TO SECOND.static IntervalofDaysHoursMinutesSeconds(long days, int hours, int minutes, int seconds)Creates a new INTERVAL DAY TO SECOND.static IntervalofHours(long hours)Creates a new INTERVAL HOUR.static IntervalofHoursMinutes(long hours, int minutes)Creates a new INTERVAL HOUR TO MINUTE.static IntervalofHoursMinutesNanos(long hours, int minutes, long nanos)Creates a new INTERVAL HOUR TO SECOND.static IntervalofHoursMinutesSeconds(long hours, int minutes, int seconds)Creates a new INTERVAL HOUR TO SECOND.static IntervalofMinutes(long minutes)Creates a new INTERVAL MINUTE.static IntervalofMinutesNanos(long minutes, long nanos)Creates a new INTERVAL MINUTE TO SECOND.static IntervalofMinutesSeconds(long minutes, int seconds)Creates a new INTERVAL MINUTE TO SECOND.static IntervalofMonths(long months)Creates a new INTERVAL MONTH.static IntervalofNanos(long nanos)Creates a new INTERVAL SECOND.static IntervalofSeconds(long seconds)Creates a new INTERVAL SECOND.static IntervalofSeconds(long seconds, int nanos)Creates a new INTERVAL SECOND.static IntervalofYears(long years)Creates a new INTERVAL YEAR.static IntervalofYearsMonths(long years, int months)Creates a new INTERVAL YEAR TO MONTH.java.lang.StringtoString()
-
-
-
Field Detail
-
qualifier
private final IntervalQualifier qualifier
-
negative
private final boolean negative
falsefor zero or positive intervals,truefor negative intervals.
-
leading
private final long leading
Non-negative long with value of leading field. For INTERVAL SECOND contains only integer part of seconds.
-
remaining
private final long remaining
Non-negative long with combined value of all remaining field, or 0 for single-field intervals, with exception for INTERVAL SECOND that uses this field to store fractional part of seconds measured in nanoseconds.
-
-
Constructor Detail
-
Interval
public Interval(IntervalQualifier qualifier, boolean negative, long leading, long remaining)
Creates a new interval. Do not use this constructor, use static methods instead.- Parameters:
qualifier- qualifiernegative- whether interval is negativeleading- value of leading fieldremaining- combined value of all remaining fields
-
-
Method Detail
-
ofYears
public static Interval ofYears(long years)
Creates a new INTERVAL YEAR.- Parameters:
years- years, |years|<1018- Returns:
- INTERVAL YEAR
-
ofMonths
public static Interval ofMonths(long months)
Creates a new INTERVAL MONTH.- Parameters:
months- months, |months|<1018- Returns:
- INTERVAL MONTH
-
ofDays
public static Interval ofDays(long days)
Creates a new INTERVAL DAY.- Parameters:
days- days, |days|<1018- Returns:
- INTERVAL DAY
-
ofHours
public static Interval ofHours(long hours)
Creates a new INTERVAL HOUR.- Parameters:
hours- hours, |hours|<1018- Returns:
- INTERVAL HOUR
-
ofMinutes
public static Interval ofMinutes(long minutes)
Creates a new INTERVAL MINUTE.- Parameters:
minutes- minutes, |minutes|<1018- Returns:
- interval
-
ofSeconds
public static Interval ofSeconds(long seconds)
Creates a new INTERVAL SECOND.- Parameters:
seconds- seconds, |seconds|<1018- Returns:
- INTERVAL SECOND
-
ofSeconds
public static Interval ofSeconds(long seconds, int nanos)
Creates a new INTERVAL SECOND.If both arguments are not equal to zero they should have the same sign.
- Parameters:
seconds- seconds, |seconds|<1018nanos- nanoseconds, |nanos|<1,000,000,000- Returns:
- INTERVAL SECOND
-
ofNanos
public static Interval ofNanos(long nanos)
Creates a new INTERVAL SECOND.- Parameters:
nanos- nanoseconds (including seconds)- Returns:
- INTERVAL SECOND
-
ofYearsMonths
public static Interval ofYearsMonths(long years, int months)
Creates a new INTERVAL YEAR TO MONTH.If both arguments are not equal to zero they should have the same sign.
- Parameters:
years- years, |years|<1018months- months, |months|<12- Returns:
- INTERVAL YEAR TO MONTH
-
ofDaysHours
public static Interval ofDaysHours(long days, int hours)
Creates a new INTERVAL DAY TO HOUR.If both arguments are not equal to zero they should have the same sign.
- Parameters:
days- days, |days|<1018hours- hours, |hours|<24- Returns:
- INTERVAL DAY TO HOUR
-
ofDaysHoursMinutes
public static Interval ofDaysHoursMinutes(long days, int hours, int minutes)
Creates a new INTERVAL DAY TO MINUTE.Non-zero arguments should have the same sign.
- Parameters:
days- days, |days|<1018hours- hours, |hours|<24minutes- minutes, |minutes|<60- Returns:
- INTERVAL DAY TO MINUTE
-
ofDaysHoursMinutesSeconds
public static Interval ofDaysHoursMinutesSeconds(long days, int hours, int minutes, int seconds)
Creates a new INTERVAL DAY TO SECOND.Non-zero arguments should have the same sign.
- Parameters:
days- days, |days|<1018hours- hours, |hours|<24minutes- minutes, |minutes|<60seconds- seconds, |seconds|<60- Returns:
- INTERVAL DAY TO SECOND
-
ofDaysHoursMinutesNanos
public static Interval ofDaysHoursMinutesNanos(long days, int hours, int minutes, long nanos)
Creates a new INTERVAL DAY TO SECOND.Non-zero arguments should have the same sign.
- Parameters:
days- days, |days|<1018hours- hours, |hours|<24minutes- minutes, |minutes|<60nanos- nanoseconds, |nanos|<60,000,000,000- Returns:
- INTERVAL DAY TO SECOND
-
ofHoursMinutes
public static Interval ofHoursMinutes(long hours, int minutes)
Creates a new INTERVAL HOUR TO MINUTE.If both arguments are not equal to zero they should have the same sign.
- Parameters:
hours- hours, |hours|<1018minutes- minutes, |minutes|<60- Returns:
- INTERVAL HOUR TO MINUTE
-
ofHoursMinutesSeconds
public static Interval ofHoursMinutesSeconds(long hours, int minutes, int seconds)
Creates a new INTERVAL HOUR TO SECOND.Non-zero arguments should have the same sign.
- Parameters:
hours- hours, |hours|<1018minutes- minutes, |minutes|<60seconds- seconds, |seconds|<60- Returns:
- INTERVAL HOUR TO SECOND
-
ofHoursMinutesNanos
public static Interval ofHoursMinutesNanos(long hours, int minutes, long nanos)
Creates a new INTERVAL HOUR TO SECOND.Non-zero arguments should have the same sign.
- Parameters:
hours- hours, |hours|<1018minutes- minutes, |minutes|<60nanos- nanoseconds, |seconds|<60,000,000,000- Returns:
- INTERVAL HOUR TO SECOND
-
ofMinutesSeconds
public static Interval ofMinutesSeconds(long minutes, int seconds)
Creates a new INTERVAL MINUTE TO SECOND.If both arguments are not equal to zero they should have the same sign.
- Parameters:
minutes- minutes, |minutes|<1018seconds- seconds, |seconds|<60- Returns:
- INTERVAL MINUTE TO SECOND
-
ofMinutesNanos
public static Interval ofMinutesNanos(long minutes, long nanos)
Creates a new INTERVAL MINUTE TO SECOND.If both arguments are not equal to zero they should have the same sign.
- Parameters:
minutes- minutes, |minutes|<1018nanos- nanoseconds, |nanos|<60,000,000,000- Returns:
- INTERVAL MINUTE TO SECOND
-
getQualifier
public IntervalQualifier getQualifier()
Returns qualifier of this interval.- Returns:
- qualifier
-
isNegative
public boolean isNegative()
Returns where the interval is negative.- Returns:
- where the interval is negative
-
getLeading
public long getLeading()
Returns value of leading field of this interval. ForSECONDintervals returns integer part of seconds.- Returns:
- value of leading field
-
getRemaining
public long getRemaining()
Returns combined value of remaining fields of this interval. ForSECONDintervals returns nanoseconds.- Returns:
- combined value of remaining fields
-
getYears
public long getYears()
Returns years value, if any.- Returns:
- years, or 0
-
getMonths
public long getMonths()
Returns months value, if any.- Returns:
- months, or 0
-
getDays
public long getDays()
Returns days value, if any.- Returns:
- days, or 0
-
getHours
public long getHours()
Returns hours value, if any.- Returns:
- hours, or 0
-
getMinutes
public long getMinutes()
Returns minutes value, if any.- Returns:
- minutes, or 0
-
getSeconds
public long getSeconds()
Returns value of integer part of seconds, if any.- Returns:
- seconds, or 0
-
getNanosOfSecond
public long getNanosOfSecond()
Returns value of fractional part of seconds (in nanoseconds), if any.- Returns:
- nanoseconds, or 0
-
getSecondsAndNanos
public long getSecondsAndNanos()
Returns seconds value measured in nanoseconds, if any.This method returns a long value that cannot fit all possible values of INTERVAL SECOND. For a very large intervals of this type use
getSeconds()andgetNanosOfSecond()instead. This method can be safely used for intervals of other day-time types.- Returns:
- nanoseconds (including seconds), or 0
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equalsin classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-