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

Cách lấy năm và tháng từ ngày trong MySQL

Vấn đề:

Bạn muốn lấy năm và tháng từ một ngày cụ thể trong cơ sở dữ liệu MySQL.

Ví dụ:

Cơ sở dữ liệu của chúng tôi có một bảng có tên là dates với dữ liệu trong các cột iddate .

id ngày
1 2008-04-21
2 1987-12-14

Hãy trích xuất yearmonth kể từ ngày.

Giải pháp 1:

SELECT
EXTRACT(YEAR FROM date) AS year,
EXTRACT(MONTH FROM date) AS month
FROM dates;

Kết quả là:

năm tháng
2008 4
1987 12

Thảo luận:

Để lấy các cột năm và tháng, hãy sử dụng EXTRACT(part FROM date) hàm số. Trong giải pháp này, đối số part được thay thế bằng YEARMONTH để lấy yearmonth riêng biệt, mỗi trong cột riêng của nó.

Bạn có thể tìm hiểu thêm về EXTRACT() trong tài liệu MySQL chính thức.

Giải pháp 2:

SELECT
EXTRACT(YEAR_MONTH FROM date) AS year_and_month
FROM dates;

Kết quả là:

year_and_month
200804
198712

Thảo luận:

Giải pháp này hoạt động giống như giải pháp trước đó, nhưng YEAR_MONTH được sử dụng để lấy năm và tháng cùng trong một cột thay vì lấy chúng riêng lẻ. Lưu ý rằng các giá trị của năm và tháng không được tách biệt nhau.

Giải pháp 3:

SELECT
YEAR(date) AS year,
MONTH(date) AS month
FROM dates;

Kết quả là:

năm tháng
2008 4
1987 12

Thảo luận:

Lần này, YEAR()MONTH() các hàm được sử dụng để tạo hai cột. YEAR() trả về năm và MONTH() trả về tháng dưới dạng một số.

Giải pháp 4:

SELECT
YEAR(date) AS year,
MONTHNAME(date) AS month
FROM dates;

Kết quả là:

năm tháng
2008 tháng 4
1987 Tháng 12

Thảo luận:

Để lấy tên của tháng, hãy sử dụng MONTHNAME() hàm số. Kết quả hiển thị tên tháng thay vì số tháng.

Giải pháp 5:

SELECT
DATE_FORMAT(date, '%Y-%m') AS year_and_month
FROM dates;

Kết quả là:

year_and_month
2008-04
1987-12

Thảo luận:

Sử dụng DATE_FORMAT() chức năng hiển thị date các giá trị trong một định dạng cụ thể. Nó có date làm đối số đầu tiên và một chuỗi mô tả định dạng ngày mong muốn làm đối số thứ hai. Trong trường hợp của chúng tôi, chuỗi '%Y-%m ', %Y trả về năm, - được sử dụng làm dấu phân tách và %m trả về tháng ở dạng số (nó có thể được thay thế bằng %M để lấy tên tháng).

Bạn có thể tìm hiểu thêm về DATE_FORMAT() trong tài liệu MySQL chính thức.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP CRUD Tạo, chỉnh sửa, cập nhật và xóa bài đăng với cơ sở dữ liệu MySQL

  2. Chuyển đổi dự phòng tự động sao chép không đồng bộ trong MySQL 8.0.22

  3. Chọn tất cả các cột bắt đầu bằng XXX bằng ký tự đại diện?

  4. mysql_fetch_array chỉ trả về một hàng

  5. Bảng tổng hợp động MySQL