Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách truy vấn MySQL theo tuần hiện tại?

Truy vấn dữ liệu theo tuần hiện tại trong MySQL

Để truy vấn dữ liệu thuộc tuần hiện tại trong MySQL, bạn có thể sử dụng hàm YEARWEEK(). Hàm này trả về năm và số tuần của một ngày, cho phép so sánh dễ dàng với tuần hiện tại.

Cú pháp cơ bản

SELECT * FROM yourTableName WHERE YEARWEEK(yourDateColumnName) = YEARWEEK(NOW());

Ví dụ minh họa chi tiết

Đầu tiên, tạo một bảng mẫu:

mysql> CREATE TABLE currentWeekDemo (
    -> UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> UserName VARCHAR(20),
    -> UserPostDate DATE
    -> );

Chèn một số dữ liệu mẫu:

mysql> INSERT INTO currentWeekDemo(UserName, UserPostDate) VALUES('Carol', '2010-01-06');
mysql> INSERT INTO currentWeekDemo(UserName, UserPostDate) VALUES('Bob', '2019-06-04');
mysql> INSERT INTO currentWeekDemo(UserName, UserPostDate) VALUES('David', '2019-03-06');
mysql> INSERT INTO currentWeekDemo(UserName, UserPostDate) VALUES('Maxwell', '2018-04-21');

Xem tất cả dữ liệu trong bảng:

mysql> SELECT * FROM currentWeekDemo;

Kết quả:

+--------+----------+--------------+
| UserId | UserName | UserPostDate |
+--------+----------+--------------+
| 1      | Carol    | 2010-01-06   |
| 2      | Bob      | 2019-06-04   |
| 3      | David    | 2019-03-06   |
| 4      | Maxwell  | 2018-04-21   |
+--------+----------+--------------+

Truy vấn các bản ghi thuộc tuần hiện tại:

mysql> SELECT * FROM currentWeekDemo WHERE YEARWEEK(UserPostDate) = YEARWEEK(NOW());

Kết quả (giả sử tuần hiện tại là tuần của 2019-03-06):

+--------+----------+--------------+
| UserId | UserName | UserPostDate |
+--------+----------+--------------+
| 3      | David    | 2019-03-06   |
+--------+----------+--------------+

Lưu ý quan trọng

  • Hàm YEARWEEK() kết hợp cả năm và số tuần, tránh nhầm lẫn giữa các năm khác nhau
  • NOW() trả về ngày giờ hiện tại của server
  • Cách này hiệu quả cho các báo cáo tuần, thống kê hoạt động người dùng, v.v.