in asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBRowStore.java [696:718]
Timestamp getTimestamp(int columnIndex, Calendar cal) throws SQLException {
ADBDatatype valueType = getColumnType(columnIndex);
switch (valueType) {
case MISSING:
case NULL:
return null;
case DATE:
return toTimestampFromDateChronon(getColumnRegister(columnIndex, 0), getTimeZone(cal, tzSystem));
case DATETIME:
return toTimestampFromDatetimeChronon(getColumnRegister(columnIndex, 0), getTimeZone(cal, tzSystem));
case STRING:
try {
Instant i = Instant.parse(getStringFromObjectStore(columnIndex));
long millis0 = TimeUnit.SECONDS.toMillis(i.getEpochSecond());
long millis1 = TimeUnit.NANOSECONDS.toMillis(i.getNano());
return new Timestamp(millis0 + millis1);
} catch (DateTimeParseException e) {
throw getErrorReporter().errorInvalidValueOfType(valueType);
}
default:
throw getErrorReporter().errorUnexpectedType(valueType);
}
}