Fish has gone bad if it has a slimy or milky consistency. A pungent, fishy smell is also an indication that the fish is no longer fresh and should be thrown away.
Although fish has a slimy texture and a fishy odor even when it's fresh, these qualities intensify once the fish is no longer safe to eat. Fish like salmon, cod, halibut and tilapia stay fresh in the refrigerator one to two days past the "sell by" date. In the freezer, fish keeps for six to nine months. Canned fish lasts in the pantry for 9 to 12 months.