*** a/src/backend/utils/adt/datetime.c
--- b/src/backend/utils/adt/datetime.c
***************
*** 2986,2991 **** DecodeInterval(char **field, int *ftype, int nf, int range,
--- 2986,2994 ----
  						break;
  
  					case DTK_MILLISEC:
+ 						tm->tm_sec += val / 1000;
+ 						val = val % 1000;
+ 
  #ifdef HAVE_INT64_TIMESTAMP
  						*fsec += rint((val + fval) * 1000);
  #else
