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

Trả lại thứ Hai đầu tiên của mỗi tháng trong SQLite

Chúng ta có thể sử dụng DATE() của SQLite hàm để trả về ngày thứ Hai đầu tiên của mỗi tháng trong một năm nhất định, dựa trên ngày chúng tôi cung cấp.

Nhưng nó không giới hạn vào Thứ Hai. Chúng tôi cũng có thể lấy thứ Ba, thứ Tư, thứ Năm, thứ Sáu đầu tiên của mỗi tháng.

Ví dụ

Ngoài ra, chúng ta có thể sử dụng mã như sau để trả về ngày Thứ Hai đầu tiên của mỗi tháng trong suốt năm:

SELECT 
    DATE('2025-10-20', 'start of year', 'weekday 1') AS "Jan",
    DATE('2025-10-20', 'start of year', '+1 month', 'weekday 1') AS "Feb",
    DATE('2025-10-20', 'start of year', '+2 months', 'weekday 1') AS "Mar",
    DATE('2025-10-20', 'start of year', '+3 months', 'weekday 1') AS "Apr",
    DATE('2025-10-20', 'start of year', '+4 months', 'weekday 1') AS "May",
    DATE('2025-10-20', 'start of year', '+5 months', 'weekday 1') AS "Jun",
    DATE('2025-10-20', 'start of year', '+6 months', 'weekday 1') AS "Jul",
    DATE('2025-10-20', 'start of year', '+7 months', 'weekday 1') AS "Aug",
    DATE('2025-10-20', 'start of year', '+8 months', 'weekday 1') AS "Sep",
    DATE('2025-10-20', 'start of year', '+9 months', 'weekday 1') AS "Oct",
    DATE('2025-10-20', 'start of year', '+10 months', 'weekday 1') AS "Nov",
    DATE('2025-10-20', 'start of year', '+11 months', 'weekday 1') AS "Dec";

Kết quả:

Jan         Feb         Mar         Apr         May         Jun         Jul         Aug         Sep         Oct         Nov         Dec       
----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------
2025-01-06  2025-02-03  2025-03-03  2025-04-07  2025-05-05  2025-06-02  2025-07-07  2025-08-04  2025-09-01  2025-10-06  2025-11-03  2025-12-01

Ở đây, chúng tôi gọi là DATE() hàm mười hai lần. Chúng tôi sử dụng cùng một ngày mỗi lần và hầu hết các đối số đều giống nhau. Điều duy nhất thay đổi là chúng ta thêm bao nhiêu vào đầu năm.

Chúng tôi sử dụng start of year để đưa ngày trở lại ngày đầu tiên của năm. Sau đó, chúng tôi sử dụng các công cụ sửa đổi bổ sung để sửa đổi ngày đó cho phù hợp.

Khi chúng tôi không thêm bất kỳ tháng nào vào ngày, chúng tôi sẽ trả về ngày Thứ Hai đầu tiên của tháng Giêng. Thêm +1 month trả về Thứ Hai đầu tiên của tháng Hai, v.v.

weekday 1 công cụ sửa đổi chuyển ngày sang Thứ Hai tiếp theo. Chủ Nhật là 0, Thứ Hai là 1, Thứ Ba là 2, v.v., vì vậy, nếu chúng tôi muốn Thứ Ba, chẳng hạn, chúng tôi sẽ sử dụng weekday 2 thay vào đó.

Sử dụng Ngày hiện tại

Ví dụ sau sử dụng ngày hiện tại:

SELECT 
    DATE('now') AS "Now",
    DATE('now', 'start of year', 'weekday 1') AS "Jan",
    DATE('now', 'start of year', '+1 month', 'weekday 1') AS "Feb",
    DATE('now', 'start of year', '+2 months', 'weekday 1') AS "Mar",
    DATE('now', 'start of year', '+3 months', 'weekday 1') AS "Apr",
    DATE('now', 'start of year', '+4 months', 'weekday 1') AS "May",
    DATE('now', 'start of year', '+5 months', 'weekday 1') AS "Jun",
    DATE('now', 'start of year', '+6 months', 'weekday 1') AS "Jul",
    DATE('now', 'start of year', '+7 months', 'weekday 1') AS "Aug",
    DATE('now', 'start of year', '+8 months', 'weekday 1') AS "Sep",
    DATE('now', 'start of year', '+9 months', 'weekday 1') AS "Oct",
    DATE('now', 'start of year', '+10 months', 'weekday 1') AS "Nov",
    DATE('now', 'start of year', '+11 months', 'weekday 1') AS "Dec";

Kết quả:

Now         Jan         Feb         Mar         Apr         May         Jun         Jul         Aug         Sep         Oct         Nov         Dec       
----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------
2022-03-10  2022-01-03  2022-02-07  2022-03-07  2022-04-04  2022-05-02  2022-06-06  2022-07-04  2022-08-01  2022-09-05  2022-10-03  2022-11-07  2022-12-05

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. IntentService đang đóng băng giao diện người dùng ứng dụng của tôi

  2. CHẾ ĐỘ XEM DROP của SQLite

  3. Android:Cách tham gia bảng con với Sqlite bảng cha

  4. Cách lấy ngày hôm qua trong SQLite

  5. SQLite Node.js