A pericardial effusion and its treatment depends on the cause.The pericardium is a thin sac that surrounds your heart and protects it within your chest cavity together with your ribcage. Normally it has a small amount of fluid that acts as a lubricant and protects your heart from rubbing against the surrounding tissues. An effusion occurs if there is more than the usual amount present and can be quite dangerous if left untreated.
You can read more here:
If left untreated, the fluid will compress your heart, restricting the amount of blood that can return. This may cause a low blood pressure or even “shock”, chest pain, a fast heart rate. If the effusion is the result of an infection or inflammation, you may have a fever or other symptoms of the disease.
As a result your recovery depends what treatment is needed. If you were stabbed (and alive), I’d fix you up right now and the recovery would take maybe only a week if nothing else was wrong with you. Infections, inflammations and the other diseases you could read about above, take much longer to heal and can be more difficult to diagnose, because the effusion is usually only one of several manifestations of the primary disease.
“How long” may thus range from a few days to many weeks to for the duration of your disease.
Hope this helps,