code: func handleInvalidTimeError(ctx sessionctx.Context, err error) error {
  	if err == nil || !(terror.ErrorEqual(err, types.ErrInvalidTimeFormat) || types.ErrIncorrectDatetimeValue.Equal(err) ||
  		types.ErrTruncatedWrongValue.Equal(err) || types.ErrInvalidWeekModeFormat.Equal(err) ||
  		types.ErrDatetimeFunctionOverflow.Equal(err)) {
  		return err
  	}
  	sc := ctx.GetSessionVars().StmtCtx
  	if ctx.GetSessionVars().StrictSQLMode && (sc.InInsertStmt || sc.InUpdateStmt || sc.InDeleteStmt) {
  		return err
  	}
  	sc.AppendWarning(err)
  	return nil
  }
docs: // handleInvalidTimeError reports error or warning depend on the context.