The length of time that SEO takes varies upon the target search terms, the competition and the starting point of the website. If a target search term has a lot of competition or a website has never done SEO optimization it will take longer. On average, SEO takes 4-6 months to see effective results. However, it is a long-term investment. The higher your website ranks, the more free web traffic you receive.
Any SEO company telling you they can achieve #1 position rankings in a week should always be avoided. These types of companies use black hat SEO tactics. black hat techniques do bring fast results, but use methods disapproved by Google. When Google catches these offending websites, the sites are penalized and lose their rankings altogether.