diff --git a/src/backend/utils/adt/datetime.c b/src/backend/utils/adt/datetime.c index 7a08b92..a8370d6 100644 --- a/src/backend/utils/adt/datetime.c +++ b/src/backend/utils/adt/datetime.c @@ -1161,7 +1161,11 @@ DecodeDateTime(char **field, int *ftype, int nf, if (dterr < 0) return dterr; } - else if (flen > 4) + /* + * should call DecodeNumberField only when anyone Date or + * Time field is not yet found. + */ + else if (flen > 4 && (!(fmask & DTK_DATE_M) || !(fmask & DTK_TIME_M))) { dterr = DecodeNumberField(flen, field[i], fmask, &tmask, tm,