Package org.h2.api

Class Interval

java.lang.Object
org.h2.api.Interval

public final class Interval extends Object
INTERVAL representation for result sets.
  • Constructor Details

    • 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 - qualifier
      negative - whether interval is negative
      leading - value of leading field
      remaining - combined value of all remaining fields
  • Method Details

    • 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|<1018
      nanos - 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|<1018
      months - 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|<1018
      hours - 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|<1018
      hours - hours, |hours|<24
      minutes - 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|<1018
      hours - hours, |hours|<24
      minutes - minutes, |minutes|<60
      seconds - 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|<1018
      hours - hours, |hours|<24
      minutes - minutes, |minutes|<60
      nanos - 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|<1018
      minutes - 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|<1018
      minutes - minutes, |minutes|<60
      seconds - 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|<1018
      minutes - minutes, |minutes|<60
      nanos - 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|<1018
      seconds - 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|<1018
      nanos - 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. For SECOND intervals returns integer part of seconds.
      Returns:
      value of leading field
    • getRemaining

      public long getRemaining()
      Returns combined value of remaining fields of this interval. For SECOND intervals 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() and getNanosOfSecond() 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:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object