code: @Override
      public Long toPosition(ResultSet resultSet, int columnIndex, int colType)
              throws SQLException {
          int date = resultSet.getInt(columnIndex);
          if (date < 10000000) {
              return null;
          }
          int year = date / 10000;
          int monthDay = date - year * 10000;
          int month = monthDay / 100;
          int day = monthDay - month * 100;
          synchronized (calendar) {
              calendar.clear();
              calendar.set(year, month - 1, day);
              return AbsoluteTimeGranularityUtil.asPosition(calendar.getTime());
          }
      }
docs: Parses strings with format <code>yyyyMMdd</code> into a position with a
  granularity of
  {@link org.protempa.proposition.value.AbsoluteTimeGranularity} with a
  granularity of DAY.
  
  @param resultSet a {@link ResultSet}.
  @param columnIndex the column to parse.
  @param colType the type of the column as a {@link java.sql.Types}.
  @return a position with a granularity of
  {@link org.protempa.proposition.value.AbsoluteTimeGranularity} with a
  granularity of DAY.
  @throws SQLException if an error occurred retrieving the value from
  the result set.