Phạm vi thời gian trong MySQL

Điều kiện GIỮA MySQL được sử dụng để truy xuất các giá trị trong một phạm vi trong câu lệnh CHỌN, CHÈN, CẬP NHẬT hoặc XÓA

cú pháp

Cú pháp của Điều kiện GIỮA trong MySQL là

expression BETWEEN value1 AND value2;

Tham số hoặc Đối số

cột biểu thức hoặc phép tính. value1 và value2Những giá trị này tạo ra một phạm vi bao hàm mà biểu thức được so sánh với

Ghi chú

  • Điều kiện GIỮA MySQL sẽ trả về các bản ghi có biểu thức nằm trong phạm vi giá trị 1 và giá trị 2 [bao gồm]
  • Khi sử dụng Điều kiện GIỮA MySQL với ngày tháng, hãy đảm bảo sử dụng hàm CAST để chuyển đổi rõ ràng các giá trị thành ngày tháng

Ví dụ - Với Số

Hãy xem xét một số ví dụ về điều kiện GIỮA MySQL bằng cách sử dụng các giá trị số. Ví dụ số sau đây sử dụng điều kiện GIỮA để truy xuất các giá trị trong một phạm vi số

Ví dụ

SELECT *
FROM contacts
WHERE contact_id BETWEEN 100 AND 200;

Ví dụ MySQL GIỮA này sẽ trả về tất cả các hàng từ bảng nhà cung cấp trong đó nhà cung cấp KHÔNG nằm trong khoảng từ năm 2000 đến 2999, bao gồm cả. Nó sẽ tương đương với câu lệnh SELECT sau

Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn qua kiểu dữ liệu ngày của MySQL và chỉ cho bạn cách bạn có thể lọc từ một phạm vi ngày.

Khái niệm cơ bản

Ngày trong MySQL là kiểu dữ liệu lưu trữ các giá trị ngày ở dạng YYYY-MM-DD. Loại ngày sử dụng 3 byte để lưu trữ bản ghi ngày. Loại ngày của MySQL nằm trong khoảng từ 1000-01-0 đến 9999-12-21

MySQL được đóng gói với rất nhiều chức năng để tạo và thao tác các giá trị ngày. Tuy nhiên, do phạm vi của hướng dẫn, chúng tôi sẽ không đi sâu vào chúng. Xem tài liệu để tìm hiểu thêm

Hãy để chúng tôi lấy một ví dụ đơn giản để chỉ ra cách lưu trữ các giá trị ngày trong MySQL. Hãy xem xét các truy vấn sau

TẠO CƠ SỞ DỮ LIỆU NẾU KHÔNG TỒN TẠI date_db
SỬ DỤNG date_db;
TẠO BẢNG date_records[
  id INT AUTO_INCREMENT PRIMARY KEY
    timetable DATE NOT NULL
];
INSERT INTO date_records[timetable]
VALUES['2021-06-06'],
    ['2020-01-20'],
    ['2030-03-03'];

Bây giờ chúng ta có thể chọn các giá trị từ bảng như

chọn * từ date_records;
+----+-----------+
. Tôi. thời gian biểu.
+-----+------------+
. 1. 2021-06-06.
. 2. 2020-01-20.
. 3. 2030-03-03.
+-----+------------+
3 hàng trong tập hợp [0. 00 giây]

Bạn có thể sử dụng các hàm MySQL để thêm nhiều giá trị ngày hơn vào bảng

Làm cách nào để lọc phạm vi ngày?

Bây giờ chúng ta hãy bắt tay vào chủ đề. “Làm cách nào để lọc trong phạm vi ngày?”

MySQL thông minh và rất trực quan. Bạn có thể sử dụng các toán tử so sánh thông thường để lọc dữ liệu trong một phạm vi ngày cụ thể

Hãy để chúng tôi lấy cơ sở dữ liệu mẫu sakila có sẵn trong tài nguyên được cung cấp bên dưới

https. // nhà phát triển. mysql. com/doc/index-khác. html

Trong bảng thanh toán, chúng tôi có thể lọc các ngày thanh toán nằm trong khoảng thời gian cụ thể

Ví dụ: để lọc các khoản thanh toán nằm trong khoảng “2005-05-25 11. 30. 37” và “2005-07-30 19. 23. 44”, chúng ta có thể sử dụng truy vấn bên dưới

CHỌN payment_id, customer_id, Rent_id
TỪ thanh toán
WHERE payment_date GIỮA '25-05-2005 11. 30. 37' VÀ '2005-07-30 19. 23. 44' GIỚI HẠN 10;

Ví dụ trên sẽ trả về các cột có giá trị nằm trong khoảng thời gian đã chỉ định

Một ví dụ khác là lọc các giá trị cho đến một ngày cụ thể. Trong trường hợp này, chúng ta có thể sử dụng toán tử nhỏ hơn hoặc bằng như

CHỌN thanh toán_id, khách hàng_id, thuê_id
TỪ khoản thanh toán
NƠI ngày thanh toán 

Trong ví dụ trên, truy vấn trả về tất cả các giá trị trong phạm vi “2005-05-25 11. 30. 37” trở xuống

Tóm lược

MySQL cho phép bạn sử dụng các toán tử so sánh để lọc phạm vi ngày giống như cách bạn làm với các loại khác, chẳng hạn như số nguyên

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

SELECT * FROM table WHERE date_column >= '2014-01-01' AND date_column = '2014-01-01' AND date_column 

Làm cách nào để đặt kiểu dữ liệu thời gian trong MySQL?

MySQL cho phép các giây phân số cho các giá trị TIME , DATETIME và TIMESTAMP với độ chính xác lên tới micro giây [6 chữ số]. Để xác định một cột bao gồm phần giây phân số, hãy sử dụng cú pháp type_name [ fsp ], trong đó type_name là TIME , DATETIME hoặc TIMESTAMP và fsp là độ chính xác của giây phân số

Chủ Đề