Package org.h2.mode
Class ToDateParser
- java.lang.Object
-
- org.h2.mode.ToDateParser
-
public final class ToDateParser extends java.lang.Object
Emulates Oracle's TO_DATE function.
This class holds and handles the input data form the TO_DATE-method
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
ToDateParser.ConfigParam
The configuration of the date parser.
-
Field Summary
Fields Modifier and Type Field Description private long
absoluteDay
private boolean
absoluteDayValid
private boolean
bc
private int
currentMonth
private int
currentYear
private int
day
private int
dayOfYear
private boolean
doyValid
private java.lang.String
formatStr
private ToDateParser.ConfigParam
functionName
private int
hour
private int
hour12
private boolean
hour12Valid
private java.lang.String
inputStr
private boolean
isAM
private int
minute
private int
month
private int
nanos
private int
second
private SessionLocal
session
private TimeZoneProvider
timeZone
private boolean
timeZoneHMValid
private int
timeZoneHour
private int
timeZoneMinute
private java.lang.String
unmodifiedFormatStr
private java.lang.String
unmodifiedInputStr
private int
year
-
Constructor Summary
Constructors Modifier Constructor Description private
ToDateParser(SessionLocal session, ToDateParser.ConfigParam functionName, java.lang.String input, java.lang.String format)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) int
getCurrentMonth()
(package private) int
getCurrentYear()
(package private) java.lang.String
getFormatStr()
(package private) java.lang.String
getFunctionName()
(package private) java.lang.String
getInputStr()
private ValueTimestamp
getResultingValue()
private ValueTimestampTimeZone
getResultingValueWithTimeZone()
private static ToDateParser
getTimestampParser(SessionLocal session, ToDateParser.ConfigParam param, java.lang.String input, java.lang.String format)
private boolean
hasToParseData()
private static ToDateParser
parse(ToDateParser p)
private void
queryCurrentYearAndMonth()
(package private) void
remove(java.lang.String inputFragmentStr, java.lang.String formatFragment)
Remove a token from a string.private void
removeFirstChar()
(package private) void
setAbsoluteDay(int absoluteDay)
(package private) void
setAmPm(boolean isAM)
(package private) void
setBC(boolean bc)
(package private) void
setDay(int day)
(package private) void
setDayOfYear(int dayOfYear)
(package private) void
setHour(int hour)
(package private) void
setHour12(int hour12)
(package private) void
setMinute(int minute)
(package private) void
setMonth(int month)
(package private) void
setNanos(int nanos)
(package private) void
setSecond(int second)
(package private) void
setTimeZone(TimeZoneProvider timeZone)
(package private) void
setTimeZoneHour(int timeZoneHour)
(package private) void
setTimeZoneMinute(int timeZoneMinute)
(package private) void
setYear(int year)
static ValueTimestamp
toDate(SessionLocal session, java.lang.String input, java.lang.String format)
Parse a string as a date with the given format.java.lang.String
toString()
static ValueTimestamp
toTimestamp(SessionLocal session, java.lang.String input, java.lang.String format)
Parse a string as a timestamp with the given format.static ValueTimestampTimeZone
toTimestampTz(SessionLocal session, java.lang.String input, java.lang.String format)
Parse a string as a timestamp with the given format.
-
-
-
Field Detail
-
session
private final SessionLocal session
-
unmodifiedInputStr
private final java.lang.String unmodifiedInputStr
-
unmodifiedFormatStr
private final java.lang.String unmodifiedFormatStr
-
functionName
private final ToDateParser.ConfigParam functionName
-
inputStr
private java.lang.String inputStr
-
formatStr
private java.lang.String formatStr
-
doyValid
private boolean doyValid
-
absoluteDayValid
private boolean absoluteDayValid
-
hour12Valid
private boolean hour12Valid
-
timeZoneHMValid
private boolean timeZoneHMValid
-
bc
private boolean bc
-
absoluteDay
private long absoluteDay
-
year
private int year
-
month
private int month
-
day
private int day
-
dayOfYear
private int dayOfYear
-
hour
private int hour
-
minute
private int minute
-
second
private int second
-
nanos
private int nanos
-
hour12
private int hour12
-
isAM
private boolean isAM
-
timeZone
private TimeZoneProvider timeZone
-
timeZoneHour
private int timeZoneHour
-
timeZoneMinute
private int timeZoneMinute
-
currentYear
private int currentYear
-
currentMonth
private int currentMonth
-
-
Constructor Detail
-
ToDateParser
private ToDateParser(SessionLocal session, ToDateParser.ConfigParam functionName, java.lang.String input, java.lang.String format)
- Parameters:
session
- the database sessionfunctionName
- one of [TO_DATE, TO_TIMESTAMP] (both share the same code)input
- the input date with the date-time infoformat
- the format of date-time info
-
-
Method Detail
-
getTimestampParser
private static ToDateParser getTimestampParser(SessionLocal session, ToDateParser.ConfigParam param, java.lang.String input, java.lang.String format)
-
getResultingValue
private ValueTimestamp getResultingValue()
-
getResultingValueWithTimeZone
private ValueTimestampTimeZone getResultingValueWithTimeZone()
-
getInputStr
java.lang.String getInputStr()
-
getFormatStr
java.lang.String getFormatStr()
-
getFunctionName
java.lang.String getFunctionName()
-
queryCurrentYearAndMonth
private void queryCurrentYearAndMonth()
-
getCurrentYear
int getCurrentYear()
-
getCurrentMonth
int getCurrentMonth()
-
setAbsoluteDay
void setAbsoluteDay(int absoluteDay)
-
setBC
void setBC(boolean bc)
-
setYear
void setYear(int year)
-
setMonth
void setMonth(int month)
-
setDay
void setDay(int day)
-
setDayOfYear
void setDayOfYear(int dayOfYear)
-
setHour
void setHour(int hour)
-
setMinute
void setMinute(int minute)
-
setSecond
void setSecond(int second)
-
setNanos
void setNanos(int nanos)
-
setAmPm
void setAmPm(boolean isAM)
-
setHour12
void setHour12(int hour12)
-
setTimeZone
void setTimeZone(TimeZoneProvider timeZone)
-
setTimeZoneHour
void setTimeZoneHour(int timeZoneHour)
-
setTimeZoneMinute
void setTimeZoneMinute(int timeZoneMinute)
-
hasToParseData
private boolean hasToParseData()
-
removeFirstChar
private void removeFirstChar()
-
parse
private static ToDateParser parse(ToDateParser p)
-
remove
void remove(java.lang.String inputFragmentStr, java.lang.String formatFragment)
Remove a token from a string.- Parameters:
inputFragmentStr
- the input fragmentformatFragment
- the format fragment
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
toTimestamp
public static ValueTimestamp toTimestamp(SessionLocal session, java.lang.String input, java.lang.String format)
Parse a string as a timestamp with the given format.- Parameters:
session
- the database sessioninput
- the inputformat
- the format- Returns:
- the timestamp
-
toTimestampTz
public static ValueTimestampTimeZone toTimestampTz(SessionLocal session, java.lang.String input, java.lang.String format)
Parse a string as a timestamp with the given format.- Parameters:
session
- the database sessioninput
- the inputformat
- the format- Returns:
- the timestamp
-
toDate
public static ValueTimestamp toDate(SessionLocal session, java.lang.String input, java.lang.String format)
Parse a string as a date with the given format.- Parameters:
session
- the database sessioninput
- the inputformat
- the format- Returns:
- the date as a timestamp
-
-