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

Lấy thứ tự tuần trong tháng (tuần 1, tuần 2...) từ cột DATE trong MySQL

Ý tưởng

Xác định ngày trong tháng thuộc tuần thứ mấy: ngày 1-7 là tuần 1, 8-14 là tuần 2, 15-21 là tuần 3, 22-28 là tuần 4, còn lại là tuần 5. Sử dụng hàm DAY() và câu lệnh CASE.

1. Tạo bảng

mysql> create table DemoTable (
    AdmissionDate date
);
Query OK, 0 rows affected (0.63 sec)

2. Chèn dữ liệu

mysql> insert into DemoTable values('2019-09-12');
mysql> insert into DemoTable values('2019-09-06');
mysql> insert into DemoTable values('2019-09-26');
mysql> insert into DemoTable values('2019-09-30');

3. Xem dữ liệu

mysql> select * from DemoTable;
+---------------+
| AdmissionDate |
+---------------+
| 2019-09-12    |
| 2019-09-06    |
| 2019-09-26    |
| 2019-09-30    |
+---------------+
4 rows in set (0.00 sec)

4. Truy vấn xác định tuần trong tháng

mysql> select
    CASE
        WHEN DAY(AdmissionDate) BETWEEN 1 AND 7 THEN 1
        WHEN DAY(AdmissionDate) BETWEEN 8 AND 14 THEN 2
        WHEN DAY(AdmissionDate) BETWEEN 15 AND 21 THEN 3
        WHEN DAY(AdmissionDate) BETWEEN 22 AND 28 THEN 4
        ELSE 5
    END as NthWeekDayOfMonth
    from DemoTable;

Kết quả:

+-------------------+
| NthWeekDayOfMonth |
+-------------------+
| 2                 |
| 1                 |
| 4                 |
| 5                 |
+-------------------+
4 rows in set (0.01 sec)

Giải thích: Ngày 12 → tuần 2, ngày 6 → tuần 1, ngày 26 → tuần 4, ngày 30 → tuần 5.