Làm cách nào để kiểm tra dữ liệu giữa hai ngày?

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[]

  1. 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
  2. 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à Date0, 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 Date1 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ừ Date1 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-sql

Bì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
Chuyển đổi chế độ hiển thị Nhận xét. Hiển thị hiện tại. Hiển thị với tất cả người dùng

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

+ 1 trên máy Mac]. Đảm bảo chọn Tùy chỉnh > h. mm AM/PM, nếu nó chưa được đặt.

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

Làm cách nào để kiểm tra giữa các ngày trong SQL?

Ngày sử dụng >= '2011-02-25T00. 00. 00' và Ngày < '2011-02-28T00. 00. 00' thay vào đó;

Chúng ta có thể sử dụng giữa các ngày trong SQL không?

Toán tử BETWEEN chọn các giá trị trong một phạm vi nhất định. Các giá trị có thể là số, văn bản hoặc ngày tháng. Toán tử BETWEEN đã bao hàm. giá trị bắt đầu và kết thúc được bao gồm

Làm cách nào tôi có thể nhận dữ liệu giữa hai ngày trong SQL Server?

Chỉ trong trường hợp bạn vẫn quan tâm và bạn không muốn tạo ngày giờ từ ngày và giờ, thì hãy kiểm tra phương pháp này. .
chọn * từ MyTable
trong đó [ D = '2021-09-13' và T >= '05. 00' ]
hoặc [ D = '2021-09-14' và T < '05. 00' ]

Chủ Đề