Nếu chuyển chuỗi ngày tới hàm tạo Date[]
không trả về ngày hợp lệ, thì bạn phải định dạng chuỗi ngày của mình theo cách khác, ví dụ:. g. yyyy-mm-dd
[thêm về điều đó bên dưới]
Chúng tôi có thể so sánh các ngày bởi vì ở bên dưới, mỗi ngày lưu trữ một dấu thời gian - số mili giây trôi qua giữa ngày 1 tháng 1 năm 1970 và ngày đã cho
Mỗi ngày lưu trữ một dấu thời gian dưới mui xe, do đó, hành vi mặc định là so sánh dấu thời gian của các ngày, ngay cả khi bạn không gọi phương thức getTime[]
một cách rõ ràng vào mỗi ngày
Chúng tôi đã sử dụng toán tử logic AND [&&] để kiểm tra xem cả hai điều kiện có được đáp ứng hay không trước khi chạy khối if
của chúng tôi
Nếu ngày lớn hơn ngày bắt đầu và nhỏ hơn ngày kết thúc, thì ngày đó nằm giữa hai ngày
Nếu bạn gặp khó khăn khi tạo đối tượng Date
hợp lệ từ chuỗi ngày của mình, bạn có thể chuyển 2 loại tham số cho hàm tạo Date[]
- một chuỗi ISO 8601 hợp lệ, được định dạng là
Date[]
0 hoặc chỉ làDate[]
1, nếu bạn chỉ có ngày mà không có thời gian - nhiều tham số được phân tách bằng dấu phẩy đại diện cho
Date[]
2,Date[]
3 [0 = tháng 1 đến ngày 11 = tháng 12],Date[]
4,Date[]
5,Date[]
6 vàDate[]
7
Dưới đây là một ví dụ tách một chuỗi và chuyển các tham số cho hàm tạo Date[]
để tạo một đối tượng Date
Chuỗi ngày được định dạng là Date
0, nhưng phương pháp này áp dụng cho bất kỳ định dạng nào khác
Lưu ý rằng chúng tôi đã trừ đi Date
1 từ tháng khi chuyển nó cho hàm tạo Date[]
Điều này là do, hàm tạo Date
mong đợi một giá trị dựa trên 0, trong đó Tháng 1 = 0, Tháng 2 = 1, Tháng 3 = 2, v.v.
Chúng tôi tách chuỗi trên mỗi dấu gạch chéo về phía trước để có được một mảng các chuỗi con
Chúng tôi đã sử dụng phá hủy mảng để gán các giá trị tháng, ngày và năm cho các biến và chuyển chúng cho hàm tạo Date[]
Khi bạn đã tạo đối tượng Date
từ chuỗi ngày, bạn chỉ có thể so sánh ngày giống như khi so sánh số vì đối tượng Date
được chuyển đổi thành dấu thời gian trước khi quá trình so sánh diễn ra
Chúng tôi đã lặp lại quy trình cho từng ngày và chia nhỏ từng ngày theo dấu gạch chéo về phía trước để nhận các giá trị tháng, ngày và năm
Điều rất quan trọng là trừ Date
1 khỏi giá trị của tháng, bởi vì hàm tạo Date[]
dự kiến giá trị dựa trên 0 cho tháng [Tháng 1 = 0, Tháng 2 = 1, Tháng 3 = 2]
Vì vậy, nếu tôi muốn lấy tất cả các bản ghi từ ngày 13-09-2021 lúc 05. 00. 00 sáng đến 14-09-2021 lúc 04. 59. 59 sáng hôm sau, tôi sẽ làm thế nào?
Cảm ơn ADawn
sql-server-transact-sqlBình luận
Hiển thị nhận xét 0
Bình luận
5. Cần 1600 ký tự còn lại ký tự
▼
- Hiển thị cho tất cả người dùng
- Hiển thị với người đăng gốc & Microsoft
- Người kiểm duyệt có thể xem
- Có thể xem bởi người kiểm duyệt và người đăng gốc
- Khả năng hiển thị nâng cao
tệp đính kèm. Có thể sử dụng tối đa 10 tệp đính kèm [bao gồm cả hình ảnh] với tối đa 3. 0 MiB mỗi cái và 30. tổng cộng 0 MiB
Sử dụng hàm DATEDIF khi bạn muốn tính chênh lệch giữa hai ngày. Trước tiên hãy đặt ngày bắt đầu vào ô và ngày kết thúc vào ô khác. Sau đó gõ một công thức như một trong những điều sau đây
Cảnh báo. Inếu Start_date lớn hơn End_date, kết quả sẽ là #NUM
Chênh lệch ngày
Trong ví dụ này, ngày bắt đầu nằm trong ô D9 và ngày kết thúc nằm trong E9. Công thức ở F9. “d” trả về số ngày đầy đủ giữa hai ngày
Sự khác biệt trong tuần
Trong ví dụ này, ngày bắt đầu nằm trong ô D13 và ngày kết thúc nằm trong E13. “d” trả về số ngày. Nhưng chú ý /7 ở cuối. Chia số ngày cho 7, vì có 7 ngày trong một tuần. Lưu ý rằng kết quả này cũng cần được định dạng dưới dạng số. Nhấn CTRL + 1. Sau đó nhấp vào Số > Vị trí thập phân. 2
Chênh lệch tháng
Trong ví dụ này, ngày bắt đầu nằm trong ô D5 và ngày kết thúc nằm trong E5. Trong công thức, “m” trả về số tháng đầy đủ giữa hai ngày
Sự khác biệt trong năm
Trong ví dụ này, ngày bắt đầu nằm trong ô D2 và ngày kết thúc nằm trong E2. “y” trả về số năm đầy đủ giữa hai ngày
Tính tuổi theo năm, tháng, ngày tích lũy
Bạn cũng có thể tính tuổi hoặc thời gian phục vụ của ai đó. Kết quả có thể giống như “2 năm, 4 tháng, 5 ngày. ”
1. Sử dụng DATEDIF để tìm tổng số năm
Trong ví dụ này, ngày bắt đầu nằm trong ô D17 và ngày kết thúc nằm trong E17. Trong công thức, "y" trả về số năm đầy đủ giữa hai ngày
2. Sử dụng lại DATEDIF với “ym” để tìm tháng
Trong một ô khác, hãy sử dụng công thức DATEDIF với tham số “ym”. “ym” trả về số tháng còn lại trong năm vừa qua
3. Sử dụng một công thức khác để tìm ngày
Bây giờ chúng ta cần tìm số ngày còn lại. Chúng tôi sẽ làm điều này bằng cách viết một loại công thức khác, được hiển thị ở trên. Công thức này trừ ngày đầu tiên của tháng kết thúc [5/1/2016] khỏi ngày kết thúc ban đầu trong ô E17 [5/6/2016]. Đây là cách nó làm điều này. Đầu tiên hàm DATE tạo ngày, 1/5/2016. Nó tạo nó bằng cách sử dụng năm trong ô E17 và tháng trong ô E17. Sau đó, 1 đại diện cho ngày đầu tiên của tháng đó. Kết quả cho hàm DATE là 1/5/2016. Sau đó, chúng tôi trừ ngày kết thúc ban đầu trong ô E17, là ngày 6/5/2016. 6/5/2016 trừ 1/5/2016 là 5 ngày
Cảnh báo. Chúng tôi khuyên bạn không nên sử dụng đối số DATEDIF "md" vì đối số này có thể tính toán kết quả không chính xác
4. Không bắt buộc. Kết hợp ba công thức trong một
Bạn có thể đặt cả ba phép tính trong một ô như ví dụ này. Sử dụng dấu và, dấu ngoặc kép và văn bản. Đó là một công thức dài hơn để nhập, nhưng ít nhất đó là tất cả trong một. Mẹo. Nhấn ALT+ENTER để ngắt dòng trong công thức của bạn. Điều này làm cho nó dễ đọc hơn. Ngoài ra, nhấn CTRL+SHIFT+U nếu bạn không thể nhìn thấy toàn bộ công thức
Tải xuống các ví dụ của chúng tôi
Bạn có thể tải xuống một sổ làm việc ví dụ với tất cả các ví dụ trong bài viết này. Bạn có thể làm theo, hoặc tạo công thức của riêng bạn.
Tải ví dụ tính ngày xuống
Tính toán ngày giờ khác
Tính toán giữa ngày hôm nay và một ngày khác
Như bạn đã thấy ở trên, hàm DATEDIF tính toán sự khác biệt giữa ngày bắt đầu và ngày kết thúc. Tuy nhiên, thay vì nhập ngày cụ thể, bạn cũng có thể sử dụng hàm TODAY[] bên trong công thức. Khi bạn sử dụng hàm TODAY[], Excel sẽ sử dụng ngày hiện tại trên máy tính của bạn cho ngày. Hãy nhớ rằng điều này sẽ thay đổi khi tệp được mở lại vào một ngày trong tương lai
Xin lưu ý rằng tại thời điểm viết bài này, ngày là ngày 6 tháng 10 năm 2016
Tính ngày làm việc, có hoặc không có ngày lễ
Sử dụng NETWORKDAYS. Hàm INTL khi bạn muốn tính số ngày làm việc giữa hai ngày. Bạn cũng có thể loại trừ các ngày cuối tuần và ngày lễ
Trước khi bắt đầu. Quyết định xem bạn có muốn loại trừ ngày lễ không. Nếu bạn làm như vậy, hãy nhập danh sách các ngày nghỉ trong một khu vực hoặc trang tính riêng biệt. Đặt mỗi ngày lễ trong ô riêng của mình. Sau đó chọn các ô đó, chọn Công thức > Xác định tên. Đặt tên cho phạm vi MyHolidays và nhấp vào OK. Sau đó tạo công thức bằng các bước bên dưới
1. Nhập ngày bắt đầu và ngày kết thúc
Trong ví dụ này, ngày bắt đầu nằm trong ô D53 và ngày kết thúc nằm trong ô E53
2. Trong một ô khác, gõ một công thức như thế này
Nhập công thức như ví dụ trên. Số 1 trong công thức thiết lập Thứ Bảy và Chủ nhật là ngày cuối tuần và loại trừ chúng khỏi tổng số
Ghi chú. Excel 2007 không có NETWORKDAYS. hàm INTL. Tuy nhiên, nó có NETWORKDAYS. Ví dụ trên sẽ như thế này trong Excel 2007. =NETWORKDAYS[D53,E53]. Bạn không chỉ định 1 vì NETWORKDAYS cho rằng cuối tuần là Thứ Bảy và Chủ Nhật
3. Nếu cần, hãy thay đổi 1
Nếu Thứ Bảy và Chủ Nhật không phải là ngày cuối tuần của bạn, hãy thay đổi số 1 thành số khác từ danh sách IntelliSense. Ví dụ: 2 thiết lập Chủ Nhật và Thứ Hai là ngày cuối tuần
Nếu bạn đang sử dụng Excel 2007, hãy bỏ qua bước này. Hàm NETWORKDAYS của Excel 2007 luôn giả sử cuối tuần là Thứ Bảy và Chủ Nhật
4. Nhập tên phạm vi kỳ nghỉ
Nếu bạn đã tạo tên phạm vi ngày lễ trong phần “Trước khi bạn bắt đầu” ở trên, hãy nhập tên đó ở cuối như thế này. Nếu bạn không có ngày nghỉ, bạn có thể bỏ dấu phẩy và MyHolidays. Nếu bạn đang sử dụng Excel 2007, ví dụ trên sẽ là thế này. =NETWORKDAYS[D53,E53,MyHolidays]
Mẹo. Nếu bạn không muốn tham chiếu tên phạm vi ngày lễ, bạn cũng có thể nhập một phạm vi thay thế, chẳng hạn như D35. E. 39. Hoặc, bạn có thể nhập từng ngày lễ bên trong công thức. Ví dụ: nếu ngày lễ của bạn là vào ngày 1 và 2 tháng 1 năm 2016, bạn sẽ nhập chúng như thế này. =NETWORKDAYS. INTL[D53,E53,1,{"1/1/2016","2/1/2016"}]. Trong Excel 2007, nó sẽ trông như thế này. =NETWORKDAYS[D53,E53,{"1/1/2016","2/1/2016"}]
Tính thời gian trôi qua
Bạn có thể tính thời gian đã trôi qua bằng cách lấy lần này trừ đi lần khác. Đầu tiên đặt thời gian bắt đầu trong một ô và thời gian kết thúc trong một ô khác. Đảm bảo nhập toàn thời gian, bao gồm giờ, phút và khoảng trắng trước AM hoặc PM. Đây là cách
1. Nhập thời gian bắt đầu và thời gian kết thúc
Trong ví dụ này, thời gian bắt đầu ở ô D80 và thời gian kết thúc ở E80. Đảm bảo nhập giờ, phút và dấu cách trước AM hoặc PM
2. đặt h. mm định dạng AM/PM
Chọn cả hai ngày và nhấn CTRL + 1 [hoặc
3. Trừ hai lần
Trong một ô khác, trừ ngày/giờ bắt đầu khỏi ngày/giờ kết thúc. Kết quả có thể sẽ giống như một số và số thập phân. Bạn sẽ khắc phục điều đó trong bước tiếp theo