That depends upon what you mean.
If you're speaking of the present, the first sentence is correct. In other words, "she has been working" means that she has been there for two years.
If you're speaking of a time in the past, the second sentence is correct. For example: "She had been working at the hospital for two years when I met her in 2005."
would the sentence
"she has been working at the hospital for 2 years"
or
"she had been working at the hospital for two years"
which is correct?
2 answers
http://grammar.ccc.commnet.edu/grammar/numbers.htm
=)
=)