Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách nhận bản ghi giữa 2 ngày trong MySQL

Nhiều khi bạn cần lấy dữ liệu giữa 2 ngày để báo cáo và phân tích. Khá dễ dàng để lấy các bản ghi giữa 2 ngày trong MySQL mặc dù không có chức năng tích hợp sẵn cho nó. Đây là SQL để chọn bản ghi giữa 2 ngày trong MySQL, PostgreSQL &SQL Server.

Cách lấy bản ghi giữa 2 ngày trong MySQL

Đây là SQL để lấy bản ghi giữa 2 ngày trong MySQL.

Giả sử bạn có bảng sau doanh số bán hàng (order_date, sale)

mysql> create table sales(order_date date,sale int);

mysql> insert into sales(order_date,sale)
     values('2020-06-01',250),
     ('2020-06-0',350),
     ('2020-06-02',400),
     ('2020-06-03',250),
     ('2020-06-04',200),
     ('2020-06-05',180),
     ('2020-06-06',150),
     ('2020-06-07',650),
     ('2020-06-08',500),
     ('2020-06-09',150);

mysql> select * from sales;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-06-01 |  250 |
| 2020-06-00 |  350 |
| 2020-06-02 |  400 |
| 2020-06-03 |  250 |
| 2020-06-04 |  200 |
| 2020-06-05 |  180 |
| 2020-06-06 |  150 |
| 2020-06-07 |  650 |
| 2020-06-08 |  500 |
| 2020-06-09 |  150 |
+------------+------+

Phần thưởng đã đọc:Cách nhận hồ sơ từ 24 giờ qua

Cách nhận hàng giữa 2 ngày trong MySQL

Đây là truy vấn SQL để lấy bản ghi giữa 2 ngày trong MySQL. Có 2 cách để lấy các hàng giữa 2 ngày - sử dụng toán tử toán học và sử dụng hàm BETWEEN. Chúng ta sẽ xem xét cả hai phương pháp này.

Phần thưởng đã đọc:Cách nhận bản ghi 15 ngày qua trong MySQL

Sử dụng toán tử toán học

Giả sử bạn muốn nhận hồ sơ ở order_date nằm trong khoảng 2 ngày 2020-06-02 và 2020-06-06. Đây là SQL để lấy dữ liệu giữa 2 ngày bằng các toán tử toán học.

mysql> select * from sales
     where order_date>='2020-06-02'
     and order_date<='2020-06-06';
+------------+------+
| order_date | sale |
+------------+------+
| 2020-06-02 |  400 |
| 2020-06-03 |  250 |
| 2020-06-04 |  200 |
| 2020-06-05 |  180 |
| 2020-06-06 |  150 |
+------------+------+

Trong truy vấn trên, chúng tôi chọn các bản ghi có order_date vào hoặc sau 2020-06-02 và vào hoặc trước 2020-06-06. Bạn cũng có thể sử dụng các toán tử toán học khác như>, <, =và <> với ngày tháng. Bạn cũng có thể truy vấn SQL này để chọn bản ghi giữa 2 ngày trong PostgreSQL, SQL Server và Oracle.

Phần thưởng Đọc:Cách Nhận Bản ghi Đầu tiên trong Mỗi Nhóm trong MySQL

Nếu bạn muốn chọn các bản ghi từ một ngày cụ thể cho đến ngày hiện tại, thì bạn có thể thực hiện các chức năng hệ thống như current_date hoặc bây giờ () trong truy vấn của bạn.

mysql> select * from sales
     where order_date>'2020-06-02'
     and order_date<current_date;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-06-03 |  250 |
| 2020-06-04 |  200 |
| 2020-06-05 |  180 |
| 2020-06-06 |  150 |
| 2020-06-07 |  650 |
| 2020-06-08 |  500 |
+------------+------+

Sử dụng toán tử GIỮA

Bạn cũng có thể chọn dữ liệu giữa 2 ngày bằng toán tử GIỮA

mysql> select * from sales
     where order_date
     BETWEEN '2020-06-02' and '2020-06-06';
+------------+------+
| order_date | sale |
+------------+------+
| 2020-06-02 |  400 |
| 2020-06-03 |  250 |
| 2020-06-04 |  200 |
| 2020-06-05 |  180 |
| 2020-06-06 |  150 |
+------------+------+

Trong khi chọn bản ghi, toán tử GIỮA sẽ bao gồm các bản ghi giữa 2 ngày mà bạn đề cập, cũng như các bản ghi vào 2 ngày đó.

Ubiq giúp dễ dàng trực quan hóa dữ liệu trong vài phút và theo dõi trong trang tổng quan thời gian thực. Thử nó ngay hôm nay!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mã lỗi 1292 - Giá trị DOUBLE không chính xác bị cắt ngắn - Mysql

  2. Tôi nên sử dụng loại / độ dài cột nào để lưu trữ mật khẩu được băm Bcrypt trong Cơ sở dữ liệu?

  3. Lỗi PHP (MySQL):Cảnh báo:mysql_num_rows () mong muốn tham số 1 là tài nguyên

  4. Hàm MySQL LEAST () - Tìm đối số nhỏ nhất trong danh sách đối số

  5. MySQL DISTINCT trên GROUP_CONCAT ()