Ngày kiểm tra MySQL giữa hai ngày

MySQL DATEDIFF() trả về số ngày giữa hai ngày hoặc datetimes. Hàm này chỉ tính phần ngày từ mỗi biểu thức

cú pháp

DATEDIFF(expr1,expr2);

Tranh luận

TênMô tảexpr1Một biểu thức ngày giờ. expr2A biểu thức ngày giờ

Sơ đồ cú pháp

Ngày kiểm tra MySQL giữa hai ngày

Phiên bản MySQL. 5. 6


Trình chiếu video. >

Trình duyệt của bạn không hỗ trợ video HTML5

Trình bày bằng hình ảnh

Ngày kiểm tra MySQL giữa hai ngày

Ví dụ. Hàm DATEDIFF() của MySQL

Câu lệnh sau đây sẽ trả về các hàng đó từ giao dịch mua bảng trong đó chênh lệch số ngày giữa 'invoice_dt' và 'ord_date' nhỏ hơn 10

Hôm nọ, tôi phải nhanh chóng lấy một số thống kê từ bảng cơ sở dữ liệu. Tôi cần xác định thời gian trung bình để chạy các công việc trong hệ thống xếp hàng. Để làm được điều này, tôi đã sử dụng các phương pháp chênh lệch múi giờ của MySQL. Tôi nghĩ rằng tôi sẽ chia sẻ cách các phương pháp này hoạt động và cách tôi triển khai chúng

Để tính toán sự khác biệt giữa hai ngày, MySQL cung cấp cho chúng tôi hai phương pháp khác nhau.

SELECT id, job, TIMESTAMPDIFF(SECOND, start_date, end_date) AS runtime
    FROM example_table;
9 và
SELECT id, job, TIMEDIFF(end_date, start_date) AS runtime
    FROM example_table;
0. Cái bạn sử dụng tùy thuộc vào cách bạn muốn định dạng sự khác biệt kết quả

DẤU THỜI GIAN

Phương thức này trả về chênh lệch giữa hai ngày theo đơn vị được cung cấp làm tham số đầu tiên. Ví dụ: nếu chúng tôi muốn biết sự khác biệt giữa hai ngày tính bằng giây

SELECT id, job, TIMESTAMPDIFF(SECOND, start_date, end_date) AS runtime
    FROM example_table;

Điều này tính toán

SELECT id, job, TIMEDIFF(end_date, start_date) AS runtime
    FROM example_table;
1 trong vài giây

Các đơn vị có thể là bất kỳ một trong những điều sau đây. FRAC_SECOND (micro giây), GIÂY, PHÚT, GIỜ, NGÀY, TUẦN, THÁNG, QUÝ hoặc NĂM

Ngày được truyền cho phương thức này không cần phải cùng loại. Một cái có thể là DATETIME và cái kia là NGÀY. Nếu cột có loại NGÀY thì nó sẽ được coi là có thời gian nửa đêm

TIMEDIFF

Phương thức này trả về sự khác biệt giữa hai ngày được định dạng là

SELECT id, job, TIMEDIFF(end_date, start_date) AS runtime
    FROM example_table;
2

SELECT id, job, TIMEDIFF(end_date, start_date) AS runtime
    FROM example_table;

Giống như

SELECT id, job, TIMESTAMPDIFF(SECOND, start_date, end_date) AS runtime
    FROM example_table;
9, điều này tính toán
SELECT id, job, TIMEDIFF(end_date, start_date) AS runtime
    FROM example_table;
1, nhưng lưu ý rằng các tham số ngày được gọi theo thứ tự ngược lại

Không giống như

SELECT id, job, TIMESTAMPDIFF(SECOND, start_date, end_date) AS runtime
    FROM example_table;
9, cả hai ngày cần phải cùng loại

Một ví dụ thực tế

Bây giờ chúng ta đã thiết lập cách sử dụng các phương thức chênh lệch múi giờ của MySQL, hãy xem xét một trường hợp sử dụng thực tế

Như tôi đã đề cập lúc đầu, tôi cần kiểm tra xem hàng đợi của mình mất bao lâu để xử lý công việc. Tôi có một bảng queued_t task chứa thông tin chi tiết về các tác vụ nền. Sử dụng

SELECT id, job, TIMEDIFF(end_date, start_date) AS runtime
    FROM example_table;
0, tôi có thể xác định các công việc chạy dài nhất và ngắn nhất trong tháng trước

SELECT MAX(TIMEDIFF(completed, fetched)) AS max_runtime, MIN(TIMEDIFF(completed, fetched)) AS min_runtime
    FROM queue
    WHERE completed IS NOT NULL AND created > NOW() - INTERVAL 1 MONTH;

Điều này đã cho tôi phạm vi thời gian chạy cho hàng đợi của tôi

Sau đó, tôi có thể sử dụng

SELECT id, job, TIMESTAMPDIFF(SECOND, start_date, end_date) AS runtime
    FROM example_table;
9 để tính thời gian trung bình, sử dụng phạm vi tôi vừa tính để chọn một đơn vị thời gian thích hợp

Câu hỏi rất thường gặp, cách chọn dữ liệu giữa hai ngày trong MySQL hoặc PHP. Có thể có nhiều cách để làm điều này, nhưng chúng ta sẽ thấy một số cách dễ dàng và tốt. Chung tôi hy vọng bạn thich no. Vì vậy, bạn đã sẵn sàng để làm điều đó?

Chọn dữ liệu từ cơ sở dữ liệu giữa hai ngày

01 Sử dụng BETWEEN…. VÀ…. Toán tử so sánh

Như tên gợi ý, Nó được sử dụng để kiểm tra xem một giá trị có nằm trong một phạm vi hay không.

Cú pháp.

`your_column_name` BETWEEN 'start-value' AND 'end-value'

Ví dụ về cú pháp

`order_date` BETWEEN '2020-04-05' AND '2020-04-10' // Retrun data including 05-04-2020 to 10-04-2020

`order_date` BETWEEN '2020-04-05' AND CURDATE() // Retrun data including 05-04-2020 to Current Date

Xin lưu ý rằng toán tử so sánh BETWEEN…AND… trả về các bản ghi bao gồm cả giá trị bắt đầu và kết thúc

Hãy xem một số ví dụ thực tế về GIỮA…VÀ…. toán tử so sánh

Tên bảng. đơn đặt hàng

Giả sử rằng bạn có bảng đơn đặt hàng sau trong cơ sở dữ liệu của mình và bạn muốn tìm nạp các bản ghi trong khoảng thời gian từ ‘2020-04-15’ đến ‘2020-04-30’

ID         | user_id| qty | order_date |
-----------+---------+-----+------------+
1          | 5      | 7   | 2020-04-06 |
2          | 7      | 14  | 2020-04-17 |
3          | 8      | 1   | 2020-04-20 |
4          | 100    | 5   | 2020-04-25 |
5          | 101    | 7   | 2020-04-30 |
6          | 17     | 8   | 2020-04-15 |
7          | 25     | 2   | 2020-05-25 |
8          | 24     | 1   | 2020-05-15 |
9          | 10     | 10  | 2020-05-28 |

Vì vậy, truy vấn sẽ giống như dưới đây

SELECT * FROM `order` WHERE `order_date` BETWEEN '2020-04-15' AND '2020-04-30'

đầu ra

________số 8

02 Sử dụng > AND < Toán tử so sánh

Bạn cũng có thể sử dụng toán tử so sánh > (Lớn hơn) & < (Nhỏ hơn) để tìm nạp bản ghi giữa hai ngày.

Cú pháp.

`column-name` >= 'start-value' AND `column-name` <= 'end-value'

Vì vậy, truy vấn của bạn sẽ giống như bên dưới cho cùng một bảng thứ tự được đề cập ở trên

SELECT id, job, TIMESTAMPDIFF(SECOND, start_date, end_date) AS runtime
    FROM example_table;
0

ví dụ

Tại đây, chúng tôi sẽ hiển thị cho bạn các ví dụ khác nhau về phạm vi ngày như chọn bản ghi giữa hai năm, tháng, v.v. Hãy xem nó

01 Chọn bản ghi giữa hai năm

Để chọn các bản ghi giữa hai năm, chúng ta cần trích xuất năm từ ngày để trong trường hợp này, hàm YEAR() sẽ được sử dụng. Bạn chỉ cần đặt ngày hoặc cột của mình bên trong hàm YEAR()

Giả sử bạn muốn tìm nạp tất cả các bản ghi trong khoảng thời gian từ 2019 đến 2020, vì vậy truy vấn của nó sẽ giống như bên dưới

SELECT id, job, TIMESTAMPDIFF(SECOND, start_date, end_date) AS runtime
    FROM example_table;
1

02 Chọn bản ghi giữa hai tháng

Để chọn các bản ghi giữa hai tháng, chúng ta cần trích xuất tháng từ ngày để trong trường hợp này hàm MONTH() sẽ được sử dụng. Bạn chỉ cần đặt ngày hoặc cột của mình bên trong hàm MONTH()

Giả sử bạn muốn tìm nạp tất cả các bản ghi của THÁNG 5 & THÁNG 6 để truy vấn của nó sẽ giống như bên dưới

SELECT id, job, TIMESTAMPDIFF(SECOND, start_date, end_date) AS runtime
    FROM example_table;
2

03 Chọn tất cả bản ghi trong khoảng thời gian từ hai tháng của năm cụ thể

SELECT id, job, TIMESTAMPDIFF(SECOND, start_date, end_date) AS runtime
    FROM example_table;
3

04 Chọn tất cả bản ghi của tháng cụ thể

`order_date` BETWEEN '2020-04-05' AND '2020-04-10' // Retrun data including 05-04-2020 to 10-04-2020

`order_date` BETWEEN '2020-04-05' AND CURDATE() // Retrun data including 05-04-2020 to Current Date
0

05 Chọn tất cả bản ghi của tháng hiện tại

`order_date` BETWEEN '2020-04-05' AND '2020-04-10' // Retrun data including 05-04-2020 to 10-04-2020

`order_date` BETWEEN '2020-04-05' AND CURDATE() // Retrun data including 05-04-2020 to Current Date
1

06 Chọn tất cả bản ghi của năm cụ thể

`order_date` BETWEEN '2020-04-05' AND '2020-04-10' // Retrun data including 05-04-2020 to 10-04-2020

`order_date` BETWEEN '2020-04-05' AND CURDATE() // Retrun data including 05-04-2020 to Current Date
2

07 Chọn Tất cả Bản ghi của Năm Hiện tại

`order_date` BETWEEN '2020-04-05' AND '2020-04-10' // Retrun data including 05-04-2020 to 10-04-2020

`order_date` BETWEEN '2020-04-05' AND CURDATE() // Retrun data including 05-04-2020 to Current Date
3

08 Chọn tất cả bản ghi của tháng cụ thể và năm cụ thể

`order_date` BETWEEN '2020-04-05' AND '2020-04-10' // Retrun data including 05-04-2020 to 10-04-2020

`order_date` BETWEEN '2020-04-05' AND CURDATE() // Retrun data including 05-04-2020 to Current Date
4

Đó là nó cho bây giờ. Chúng tôi hy vọng bài viết này đã giúp bạn chọn dữ liệu giữa hai ngày trong MySQL

Ngoài ra, hãy đọc hướng dẫn của chúng tôi

  1. Lỗi sau khi cấu hình thủ công php. bộ đệm trong Laravel
  2. Khóa được chỉ định là lỗi quá dài trong Laravel
  3. Yêu cầu bài đăng AJAX PHP với ví dụ
  4. Cách sử dụng Laravel Soft Delete
  5. Làm thế nào để thêm phân trang Laravel Next Prev
  6. lỗi cURL 60. Sự cố chứng chỉ SSL. không thể lấy chứng chỉ nhà phát hành địa phương
  7. Sự khác biệt giữa Factory và Seeder trong Laravel
  8. ấu trùng. Tăng Số Lượng Nếu Sản Phẩm Đã Có Trong Giỏ Hàng
  9. Cách Tính Tuổi Từ Ngày Sinh
  10. Cách chuyển đổi Base64 thành hình ảnh trong PHP
  11. Kiểm tra nếu một chuỗi chứa một từ cụ thể trong PHP
  12. Tự động điền vào các lựa chọn của trường được chọn trong ACF
  13. Cách tìm bản ghi trùng lặp trong cơ sở dữ liệu

Vui lòng cho chúng tôi biết trong phần nhận xét nếu mọi thứ hoạt động như mong đợi, các vấn đề của bạn hoặc bất kỳ câu hỏi nào. Nếu bạn nghĩ rằng bài viết này đã tiết kiệm thời gian và tiền bạc của bạn, vui lòng bình luận, chia sẻ, thích và đăng ký. Cảm ơn bạn trước 🙂 Giữ nụ cười. mã hóa hạnh phúc

Làm cách nào để kiểm tra một ngày nằm giữa 2 ngày trong MySQL?

Để đếm sự khác biệt giữa các ngày trong MySQL, hãy sử dụng hàm DATEDIFF(ngày kết thúc, ngày bắt đầu) . Sự khác biệt giữa ngày bắt đầu và ngày kết thúc được biểu thị bằng ngày.

Làm cách nào để kiểm tra phạm vi ngày trong MySQL?

Cách chọn hàng từ dãy ngày bằng lệnh truy vấn MySQL. Nếu bạn cần chọn các hàng từ bảng của cơ sở dữ liệu MySQL trong một phạm vi ngày, bạn cần sử dụng một lệnh như thế này. CHỌN * TỪ bảng WHERE date_column >= '2014-01-01' AND date_column

Làm cách nào để kiểm tra ngày hiện tại nằm giữa Start_date và end_Date trong MySQL?

Bạn muốn cải thiện câu hỏi này? .
select * from tab where start_date<='2017-08-03' and end_Date>='2017-08-03' .. .
Bạn có thể sử dụng WHERE ngày GIỮA start_date VÀ end_date. .
CHỌN * TỪ đối tượng WHERE (ngày GIỮA start_date_field VÀ end_date_field).
Bản sao có thể có của Mysql. Chọn tất cả dữ liệu giữa hai ngày

Làm cách nào để lấy dữ liệu giữa hai dấu thời gian trong SQL?

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' )