📚
Danh sách bài học
Bài 11B1Hiện tại hoàn thành và Quá khứ

Bao lâu rồi bạn (đã) …? – Câu hỏi với present perfect (simple/continuous)

how long have you (been) … ?

A

Cấu trúc

Dùng How long để hỏi về một hành động/trạng thái bắt đầu trong quá khứ và còn liên quan đến hiện tại. Có hai dạng: present perfect simple (nhấn mạnh trạng thái/kết quả) và present perfect continuous (nhấn mạnh quá trình/hoạt động). Thường dùng kèm rút gọn have/has và trả lời bằng for/since.

How long + have/has + subject + V3/ed? / How long + have/has + subject + been + V-ing? / How long has it been since + mệnh đề?
SubjectVerbShort form
IhaveI've
he/she/ithashe's/she's/it's
we/you/theyhavewe've/you've/they've
  • How long have you lived in Đà Nẵng?

    Bạn sống ở Đà Nẵng được bao lâu rồi?

  • How long have you been waiting for the bus?

    Bạn đợi xe buýt được bao lâu rồi?

    Nhấn mạnh quá trình chờ đợi đang diễn ra

  • How long has she worked at VinFast?

    Cô ấy làm việc ở VinFast được bao lâu rồi?

  • How long have they been studying English?

    Họ học tiếng Anh được bao lâu rồi?

    Hoạt động học vẫn tiếp diễn

  • How long has it been since you called your mom?

    Đã bao lâu rồi kể từ khi bạn gọi cho mẹ?

B

Cách dùng 1: Nhấn vào hoạt động đang diễn ra vs kết quả/trạng thái

Dùng have/has been + V-ing khi muốn nhấn mạnh quá trình, hành động đang diễn ra và có thể tiếp tục. Dùng have/has + V3/ed với động từ trạng thái (know, have, like…) hoặc khi trọng tâm là kết quả/trạng thái tồn tại đến hiện tại. Cả hai dạng đều nói về khoảng thời gian tính đến bây giờ, nhưng khác nhau ở trọng tâm.

have/has + been + V-ing (quá trình) / have/has + V3/ed (trạng thái/kết quả)
  • How long have you been cooking phở?

    Bạn nấu phở được bao lâu rồi?

    Nhấn mạnh quá trình nấu hiện vẫn diễn ra

  • How long have you cooked phở at your stall?

    Bạn nấu phở ở quán của mình được bao lâu rồi?

    Nhấn mạnh thời gian tổng thể/kinh nghiệm, không tập trung vào quá trình hiện tại

  • How long have you known Lan?

    Bạn quen Lan được bao lâu rồi?

    ‘know’ là động từ trạng thái → dùng present perfect simple, không dùng tiếp diễn

  • How long have you been cleaning the house?

    Bạn dọn nhà được bao lâu rồi?

    Hoạt động dọn dẹp đang diễn ra

  • How long have you had that motorbike?

    Bạn có chiếc xe máy đó được bao lâu rồi?

    ‘have’ (sở hữu) là trạng thái → dùng present perfect simple

C

Cách dùng 2: Trả lời với for/since và mẫu câu thường gặp

Dùng for + khoảng thời gian (for two years, for a long time). Dùng since + mốc thời gian hoặc sự kiện (since 2021, since last Tết, since I graduated). Có thể dùng It's been + khoảng thời gian + since + mệnh đề để nhấn mạnh khoảng cách thời gian.

for + khoảng thời gian; since + mốc thời gian/sự kiện; It's been + thời gian + since + mệnh đề
  • I've lived here for three years.

    Tôi sống ở đây được ba năm rồi.

  • I've been waiting since 7 a.m.

    Tôi đợi từ 7 giờ sáng.

  • She has worked at that café since 2022.

    Cô ấy làm ở quán cà phê đó từ năm 2022.

  • We haven't seen each other for a long time.

    Chúng tôi đã không gặp nhau trong một thời gian dài.

  • It's been two weeks since I last went to the gym.

    Đã hai tuần kể từ lần cuối tôi đi phòng gym.

D

Lưu ý: Động từ trạng thái và mẹo tránh lỗi

Nhiều động từ trạng thái không dùng dạng tiếp diễn: know, believe, like, love, want, need, understand, remember, have (sở hữu), be. Tránh dùng hiện tại đơn/hiện tại tiếp diễn để hỏi ‘How long’ vì không diễn tả khoảng thời gian đến hiện tại. Luôn nhớ ‘been’ trong dạng tiếp diễn: have/has been + V-ing.

  • How long have you known about the flash sale?

    Bạn biết về đợt giảm giá chớp nhoáng được bao lâu rồi?

    Động từ trạng thái ‘know’ → không dùng tiếp diễn

  • How long have you been using Zalo?

    Bạn dùng Zalo được bao lâu rồi?

    Hành động sử dụng tiếp diễn

  • How long have you been married?

    Bạn kết hôn được bao lâu rồi?

    ‘been’ + tính từ/trạng thái; không dùng ‘been being married’

  • How long have you had this headache?

    Bạn bị đau đầu đã bao lâu rồi?

    ‘have’ (trạng thái bệnh) → present perfect simple

  • How long has your internet been slow?

    Mạng nhà bạn chậm đã bao lâu rồi?

    Trạng thái kéo dài đến hiện tại

Lỗi thường gặp

How long do you live in Hanoi?How long have you lived in Hanoi?

Dùng present perfect để nói khoảng thời gian từ quá khứ đến hiện tại; hiện tại đơn không diễn tả ý này.

I've lived here since five years.I've lived here for five years.

since + mốc thời gian/sự kiện; for + khoảng thời gian.

How long have you been knowing him?How long have you known him?

‘know’ là động từ trạng thái → không dùng dạng tiếp diễn.