-
Tính Toán thời gian giữa hai thời điểm với datediff
Noname > 13-08-10, 10:40 PM
Đôi khi bạn có nhu cầu tính số ngày, số tháng, số quý giữa hai thời kỳ nhằm phục vụ báo cáo.Cụ thể tính tiền trợ cấp hoặc bảo hiểm xã hội!
Mình xin giới thiệu hàm: DateIff( loại, từ ngày, đến ngày)
bạn dùng hàm datediff("d", date1, date2) để tính số ngày
bạn dùng hàm datediff("m", date1, date2) để tính số tháng
bạn dùng hàm datediff("q", date1, date2) để tính số quý ....
Loại ta có:
yyyy Year
q Quarter
m Month
y Day of year
d Day
w Weekday
ww Week
h Hour
n Minute
s Second
sau khi tính duoc số tháng ban dùng dấu chia ngược "\" hoặc dùng hàm roud() kết hợp với lệnh mod để tính ra số năm và số tháng
ví dụ: trên báo cáo BHXH thời gian đóng BHXH cua Nhân viên A là ngày 15 tháng 01 năm 1980 đến ngày 15 tháng 6 năm 1982 là 2 năm 5 tháng ban làm như sau:
datediff("m",#01/15/1980#,#06/15/1982#) --> cho kết quả 29
hoặc
datediff("m", dateserial(1980,01,15), dateserial(1982,06,15)) --> cho kết quả 29
để tìm ra số năm ta có thể lấy 29\12 = 2 hoặc fix(29/12) = 2
để tinh số tháng ta lấy 29 mod 12 = 5 -
RE: Tính Toán thời gian giữa hai thời điểm với datediff
feraly > 21-12-10, 04:14 PM
Mình cũng đang học nên chưa biết gì nhiều, -
RE: Tính Toán thời gian giữa hai thời điểm với datediff
helloworld > 27-12-10, 07:00 PM
Bác ơi.Cho e hỏi.Vậy sau khi tìm ra năm/tháng/ngày.Ví dụ 0 năm 1 tháng 2 ngày muốn đọc 1 tháng 2 ngày,1năm 0 tháng 3 ngày mún đọc 1 năm 3 ngày...thì làm như thế nào ạ,dùng hàm nào ạ???.Em mới nghiên cứu access mà đề tài của em bị đụng ngay chỗ này chưa có cách giải quyết....hic.May quá gặp bài này...Thanks bác trước -
RE: Tính Toán thời gian giữa hai thời điểm với datediff
Noname > 28-12-10, 12:06 AM
(27-12-10, 07:00 PM)helloworld Đã viết: Bác ơi.Cho e hỏi.Vậy sau khi tìm ra năm/tháng/ngày.Ví dụ 0 năm 1 tháng 2 ngày muốn đọc 1 tháng 2 ngày,1năm 0 tháng 3 ngày mún đọc 1 năm 3 ngày...thì làm như thế nào ạ,dùng hàm nào ạ???.Em mới nghiên cứu access mà đề tài của em bị đụng ngay chỗ này chưa có cách giải quyết....hic.May quá gặp bài này...Thanks bác trước
Dùng hàm Iff thôi bạn ạ. Mà mình chưa hiểu đọc là đọc trong hoàn cảnh nào! -
RE: Tính Toán thời gian giữa hai thời điểm với datediff
helloworld > 28-12-10, 12:10 PM
Vâng.Thanks bác.Đề tài của e là quản lý phạm nhân.yêu cầu phải đọc án còn lại và án đã thi hành tính đến thời điểm hiện tại.Tính thì e dùng hàm datediff như bác đã hướng dẫn đã tính được.Còn đọc theo ngày tháng năm thì e bí.Tại ko rành VB.Trước làm bên ễcll cũng dùng if để đọc thì đơn giản.Đụng trúng a VB này..botay.Bác hướng dẫn e kỹ hơn đc ko? Thanks b truoc
mà dùng iif thì dùng trực tiếp trong form,report lun hả bác?Không còn viết function sao? -
RE: Tính Toán thời gian giữa hai thời điểm với datediff
Noname > 28-12-10, 12:32 PM
Vì VBA không hỗ trợ unicode nên gần như pó tay. Nên bạn kết hợp các hàm trong query thôi. Hàm IIF tương đường với hàm if của Excel -
RE: Tính Toán thời gian giữa hai thời điểm với datediff
helloworld > 28-12-10, 12:51 PM
Thật ra em chì cần đọc tắt .Ví dụ như xN yT zNg thôi ạ.Vậy bác có hàm VBA có thể giải quyết được vấn đề của e ko a?Còn nếu dùng query thì kết hợp những hàm nào.Mong bác giúp em trót lần này -
RE: Tính Toán thời gian giữa hai thời điểm với datediff
Noname > 28-12-10, 01:47 PM
Nếu bạn tìm ra năm tháng ngày rồi thì cứ như thế này:
Mã:Function docngay(ngay as Integer,thang as integer,nam as integer) as String
Dim S as String
If ngay>0 then
S= ngay & " ngay "
End if
If thang>0 then
S = S & " thang "
end if
If nam>0 then
S=S & " Nam "
End if
docngay= S
end Function
Giờ không cần biết bạn làm cách nào để có số ngày. tháng, năm. Khi nào cần đọc thì cứ gọi hàm đọc ngày trên :
=docngay 2, 1, 0 => 2 ngày 1 tháng
= docngay 2, 0, 1 => 2 ngày 1 năm
... -
RE: Tính Toán thời gian giữa hai thời điểm với datediff
helloworld > 28-12-10, 06:09 PM
Thanks bác nhìu nhìu lắm lắm ợ.Mừng quá cơ -
RE: Tính Toán thời gian giữa hai thời điểm với datediff
KínhCận > 28-05-11, 12:17 PM
Có hàm datediff này tính quá hạn nợ là số 1 tìm đã lâu ai ngờ nằm ở web mình tham gia bấy lâu hic, cám ơn chủ thớt nhiều nhé!