Bao lâu rồi bạn (đã) …? – Câu hỏi với present perfect (simple/continuous)
how long have you (been) … ?
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.
| Subject | Verb | Short form |
|---|---|---|
| I | have | I've |
| he/she/it | has | he's/she's/it's |
| we/you/they | have | we'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ẹ?
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.
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á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.
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.
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
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.
since + mốc thời gian/sự kiện; for + khoảng thời gian.
‘know’ là động từ trạng thái → không dùng dạng tiếp diễn.
Xem thêm: