zinc is the only sunBLOCK which means a physical barrier btwn sun and skin--you can see it so it is obvious if it wears off in the water. all others are sunSCREEN and nothing is waterPROOF, just water RESISTANT, so reapply frequently.
If at the beach I would have him play in the sand under an umbrella periodically to get a break from direct sun and to let the sunscreen soak into his skin before getting wet again (5-10 minutes, otherwise it just washes off the minute it gets wet). If at the pool, a 10 minute potty/sunscreen break periodically.
The most natural and effective sunscreen I found, and LOVE for my babies, is ARBONNE "ABC" baby sunscreen, SPF 30+. I put it on my baby girls for beach, pool, or park days and it does not feel greasy and is good for their sensitive skin. It stays on and smells good all day!