• Tính Toán thời gian giữa hai thời điểm với datediff
  • RE: Tính Toán thời gian giữa hai thời điểm với datediff

    minhden21 > 30-09-12, 01:07 AM

    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
  • RE: Tính Toán thời gian giữa hai thời điểm với datediff

    dangphuong9x@gmail.com > 16-10-12, 11:49 AM

    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é!
  • RE: Tính Toán thời gian giữa hai thời điểm với datediff

    Noname > 16-10-12, 12:27 PM

    (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
  • RE: Tính Toán thời gian giữa hai thời điểm với datediff

    lenga2212 > 28-01-13, 05:34 PM

    cảm ơn bạn vì thông tin bổ ích này
  • RE: Tính Toán thời gian giữa hai thời điểm với datediff

    khainguyen8615@ymail.com > 28-01-13, 07:23 PM

    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 !
  • RE: Tính Toán thời gian giữa hai thời điểm với datediff

    maidinhdan > 29-06-15, 06:41 PM

    (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
  • RE: Tính Toán thời gian giữa hai thời điểm với datediff

    Noname > 29-06-15, 09:27 PM

    (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.
  • RE: Tính Toán thời gian giữa hai thời điểm với datediff

    jason > 10-12-16, 09:37 AM

    (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 !
  • RE: Tính Toán thời gian giữa hai thời điểm với datediff

    ongke0711 > 11-12-16, 12:57 PM

    (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
  • RE: Tính Toán thời gian giữa hai thời điểm với datediff

    ngocthinh1126 > 16-12-18, 04:09 PM

    vậy như thế mỗi lần tính phải nhập datediff("m",#01/15/1980#,#06/15/1982#) ngày cụ thể như thế hả ???