I tend to accept answers relatively quickly, under certain criteria:
- does the answer cover all of the question in enough detail?
- am I happy that I don't want any further clarification that another answer might provide?
- is the question old enough (definitely more than 1-2 hours if possible) to have given other users the chance to answer?
If an answer meets those, I'm happy to accept straight away, and Stack Exchange guidance seems to consider this acceptable:
- Don't hesitate to accept an answer that is well-written, suggests a good practice and works for you.
- Otherwise, even if there are answers that are good enough but that you're not entirely satisfied by, you might wait 24 to 48 hours to give other people a chance to give you a better answer. A question with an accepted answer isn't as likely to receive further attention as one without an accepted answer.
The key bit in my mind is works for you. It's important to remember acceptance doesn't mean "this is the best answer", it means "this is the answer that solved the author's problem (in their opinion)". If an answer is detailed enough that I don't need any clarification from other answers, I'm happy to accept to say "this solved my problem/query".
Of course, I could turn this question on its head and ask if you believe that the question could be answered more completely, why not answer even if it is accepted? Even days and weeks after the question is asked, I believe it's only fair to read new answers and adjust the acceptance if the new answer is significantly clearer/more detailed than the previous accepted answer.
On meta, however, I follow a different policy, since accepting an answer represents a more fundamental decision on site policy in a lot of cases. If there is one, unanimously upvoted answer after several days, I will accept, but in any other case I think it's best to simply leave questions with no accepted answer to give the community the choice.
In summary:
- upvote helpful answers, but don't feel pressured to accept when incomplete, but...
- don't be scared to accept a great answer straight away, if it's clear that this covers everything you would need to know, and...
- remember to read new answers and be ready to change your acceptance if the new answer is a better solution!