code: func ExtractTimeValue(unit string, format string) (int64, int64, int64, float64, error) {
  	switch strings.ToUpper(unit) {
  	case "MICROSECOND", "SECOND", "MINUTE", "HOUR", "DAY", "WEEK", "MONTH", "QUARTER", "YEAR":
  		return extractSingleTimeValue(unit, format)
  	case "SECOND_MICROSECOND":
  		return extractTimeValue(format, MicrosecondIndex, SecondMicrosecondMaxCnt)
  	case "MINUTE_MICROSECOND":
  		return extractTimeValue(format, MicrosecondIndex, MinuteMicrosecondMaxCnt)
  	case "MINUTE_SECOND":
  		return extractTimeValue(format, SecondIndex, MinuteSecondMaxCnt)
  	case "HOUR_MICROSECOND":
  		return extractTimeValue(format, MicrosecondIndex, HourMicrosecondMaxCnt)
  	case "HOUR_SECOND":
  		return extractTimeValue(format, SecondIndex, HourSecondMaxCnt)
  	case "HOUR_MINUTE":
  		return extractTimeValue(format, MinuteIndex, HourMinuteMaxCnt)
  	case "DAY_MICROSECOND":
  		return extractTimeValue(format, MicrosecondIndex, DayMicrosecondMaxCnt)
  	case "DAY_SECOND":
  		return extractTimeValue(format, SecondIndex, DaySecondMaxCnt)
  	case "DAY_MINUTE":
  		return extractTimeValue(format, MinuteIndex, DayMinuteMaxCnt)
  	case "DAY_HOUR":
  		return extractTimeValue(format, HourIndex, DayHourMaxCnt)
  	case "YEAR_MONTH":
  		return extractTimeValue(format, MonthIndex, YearMonthMaxCnt)
  	default:
  		return 0, 0, 0, 0, errors.Errorf("invalid singel timeunit - %s", unit)
  	}
  }
docs: // ExtractTimeValue extracts time value from time unit and format.