Đánh giá chủ đề:
  • 4 Votes - 3 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Tính Toán thời gian giữa hai thời điểm với datediff
#11
Nếu dùng theo công thức của bác thì em vẫn còn thắc mắc đó là: Tính Thâm niên công tác từ 31/12/2009 đến 01/01/2010 thì vẫn tính ra được 1 năm ... vô lý quá ! Có cách nào tính thâm niên chính xác không. Em ví dụ là em nhận công tác từ ngày 10/10/2005 nhưng phải đến 10/10/2006 em mới được 1 năm thâm niên, còn chưa tới ngày đó thì thâm niên của em chưa được tính. Các bác giúp em với
016021
Chữ ký của minhden21 Trời ơi ! Access quá hay mà sao tui không làm được T_T 021
Reply
Những người đã cảm ơn
#12
sao mình làm mà không được nhỉ>?
mình tạo ra 1 trường là ngày bắt đầu
1 trường ngày kết thúc
sau đó mình sử dụng dateiif để trừ đi mà không chạy được
dateiif("m",[table].[field1],[table].[field2])
các bạn gúp mình nhé!
Chữ ký của dangphuong9x@gmail.com Xin chào, mình là dangphuong9x@gmail.com, Tham gia http://thuthuataccess.com/forum từ ngày 03-10 -12.
Reply
Những người đã cảm ơn
#13
(16-10-12, 11:49 AM)dangphuong9x@gmail.com Đã viết: sao mình làm mà không được nhỉ>?
mình tạo ra 1 trường là ngày bắt đầu
1 trường ngày kết thúc
sau đó mình sử dụng dateiif để trừ đi mà không chạy được
dateiif("m",[table].[field1],[table].[field2])
các bạn gúp mình nhé!

datediff chứ không phải dayiif
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#14
cảm ơn bạn vì thông tin bổ ích này
Chữ ký của lenga2212 Xin chào, mình là lenga2212, Tham gia http://thuthuataccess.com/forum từ ngày 28-01 -13.
Reply
Những người đã cảm ơn
#15
Tính Toán thời gian giữa hai thời điểm với dateiff
Để 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!
Dùng hàm: DateIff( loại, từ ngày, đến ngày)
hàm datediff("d", date1, date2) để tính số ngày
hàm datediff("m", date1, date2) để tính số tháng
hàm datediff("q", date1, date2) để tính số quý ....
Theo vậy 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 phải 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 có tên " = MINH "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 phải 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 round(29/12,0) = 2
để tinh số tháng ta lấy 29 mod 12 = 5
Chịu khó tìm thêm các tài liệu của các bậc tiền bối mà nghiên cứu : Ông Văn Thông , Lập trình access,v.v.v.v
Khải Nguyên Sorry !
Chữ ký của khainguyen8615@ymail.com Xin chào, mình là Khải Nguyên, Tham gia http://thuthuataccess.com/forum từ ngày 19-01 -13.
Reply
Những người đã cảm ơn
#16
(13-08-10, 10:40 PM)Noname Đã viết: Đô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)

để tìm ra số năm ta có thể lấy 29\12 = 2 hoặc round(29/12,0) = 2

Xin góp ý anh No ở phần này dùng hàm Round có thể không ổng khi những ai có tháng >6, nó sẽ làm tròn thành 1 năm.

Vì vậy góp ý sử dụng hàm Fix là tốt nhất để lấy phần nguyên.

Ví dụ: 12,9 năm;
+ Round(12,9) => 13 ( Hàm này nguy hiểm khi tính thâm niên nhé)
+ Fix (12,9)       => 12

Xin cho thêm vài ý kiến
Chữ ký của maidinhdan * Để được hỗ trợ tốt nhất, nhấn vào link dưới đây để xem.
1. [Hướng dẫn] Kiểu file gửi lên để được giúp đỡ
2. [Hướng dẫn] Nội quy diễn đàn
3. [Hướng dẫn] Cách Đưa file và hình vào diễn đàn
4.[Hướng dẫn] Để xây dựng một ứng dụng hoàn hảo và lời cảm tạ
5. Cần tìm Demo hay ứng dụng sử dụng thanh tìm kiếm phía trên cùng, bên phải của diễn đàn.
* Nếu muốn cảm ơn, hãy nhấn nút thank, không cần viết thêm bài nào nửa.



ღღღღღTài sản của maidinhdan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn Noname
#17
(29-06-15, 06:41 PM)maidinhdan Đã viết: Ví dụ: 12,9 năm;
+ Round(12,9) => 13 ( Hàm này nguy hiểm khi tính thâm niên nhé)
+ Fix (12,9)       => 12

Xin cho thêm vài ý kiến
Thanks maidinhdan, No đã cập nhật ở trang 1.
Vậy dùng dấu "\"  để chia lấy nguyên cho 12 là gọn nhất để tính số năm.
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#18
(13-08-10, 10:40 PM)Noname Đã viết: Đô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

Chào No và diễn đàn !
mọi người giúp mình vấn đề nầy với:
sumdate: DateDiff("d",[tungay]-1,[denngay])-DateDiff("ww",[tungay]-1,[denngay],6)
hàm trên mình viết trong query tính số ngày trong khoảng thời gian "tungay" -> "denngay" trừ ngày chủ nhật và ngày lễ
   + ngày chủ nhật thì như trên là OK
   + còn ngày lễ mình chưa biết xử lý thế nào (tìm trên diễn đàn mà không thấy nên hỏi ké topic của Noname. mong Noname lượng thứ) 
VD: lễ 30/4, 1/5 hoặc 1/1 làm giúp mình ngày dương lịch cũng được vì mình biết âm lịch thì khó. nếu được thì giúp cả 2 càng tôt . thanks all
Mong mọi người giúp với 
trân trọng !
Chữ ký của jason Học ...học nữa và học mãi 53_53 !

ღღღღღTài sản của jason (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#19
(10-12-16, 09:37 AM)jason Đã viết: sumdate: DateDiff("d",[tungay]-1,[denngay])-DateDiff("ww",[tungay]-1,[denngay],6)
hàm trên mình viết trong query tính số ngày trong khoảng thời gian "tungay" -> "denngay" trừ ngày chủ nhật và ngày lễ
   + ngày chủ nhật thì như trên là OK
   + còn ngày lễ mình chưa biết xử lý thế nào (tìm trên diễn đàn mà không thấy nên hỏi ké topic của Noname. mong Noname lượng thứ) 
VD: lễ 30/4, 1/5 hoặc 1/1 làm giúp mình ngày dương lịch cũng được vì mình biết âm lịch thì khó. nếu được thì giúp cả 2 càng tôt . thanks all
Mong mọi người giúp với 
trân trọng !

1. Câu lệnh tính sumdate của bạn cho kết quả không đúng cho mọi trường hợp đâu. Sai ở đoạn “tính số tuần” trong khoảng thời gian [tungay], [denngay].
Vd: Bạn thử tính trường hợp: ngày dạng mm/dd/yyyy để code VBA hiểu đúng ngày
- Từ #12/04/2016# - #12/11/2016#: sai số tuần
- Từ #12/08/2016# - #12/16/2016#: sai số tuần do tham số [FirstdayOfWeek] của bạn là 6

2. Về việc tính đến các ngày nghỉ Lễ thì cũng đơn giản là bạn phải tạo 1 table ngày nghỉ lễ sau đó dùng hàm Dcount() để đếm số ngày lễ trong khoản thời gian [tungay],[denngay] bạn đang cần tính, sau đó lấy số ngày làm việc trừ số Dcount vừa tìm được.

Thấy cũng có nhu cầu nên tôi có up cái hàm fWorkingDays lên để các bạn có nhu cầu thì sử dụng.
Link: http://thuthuataccess.com/forum/thread-9709.html
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn maidinhdan , jason


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Hàm] Hàm Work_Days để tính thời gian làm việc giữa BegDate và EndDate Xuân Thanh 1 2,622 20-03-13, 11:37 AM
Bài mới nhất: hoaiitktv

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ