MySQL lấy tên tháng và năm kể từ ngày

Đây là hướng dẫn ngắn về cách lấy năm và tháng từ cột ngày trong MySQL. Để làm điều này, chúng tôi sẽ sử dụng chức năng EXTRACT, cho phép chúng tôi trích xuất các phần của một ngày

Dưới đây, bạn sẽ tìm thấy ảnh chụp màn hình của bảng MySQL có tên là “thành viên“

Như bạn có thể thấy, bảng có ba cột

  1. Id khóa chính
  2. Tên của thành viên
  3. Một cột ngày được gọi là date_registered

Giả sử chúng ta muốn đếm xem có bao nhiêu thành viên đã đăng ký và nhóm họ theo năm và tháng mà họ đã đăng ký?

SELECT 
    EXTRACT[YEAR_MONTH FROM date_registered] AS year_month_registered, 
    COUNT[*] AS num_registered
FROM `members`
GROUP BY year_month_registered

Các bạn chạy câu truy vấn SQL trên sẽ thấy nó trả về kết quả như sau

Như bạn có thể thấy, Năm và Tháng đã được lưu trữ ở định dạng YYYYMM với bí danh có tên là “year_month_registered. ”

Sử dụng DATE_FORMAT để lấy năm và tháng

Một cách khác là sử dụng hàm DATE_FORMAT. Điều này có thể đặc biệt hữu ích nếu bạn đang tìm kiếm một định dạng cụ thể. Ví dụ: nếu bạn muốn có dấu gạch nối để phân tách năm và tháng, thì bạn có thể sử dụng như sau

SELECT 
    DATE_FORMAT[date_registered, '%Y-%m'] AS year_month_registered, 
    COUNT[*] AS num_registered
FROM `members`
GROUP BY year_month_registered

Truy vấn trên sẽ dẫn đến định dạng sau

Bạn thậm chí có thể nói với hàm DATE_FORMAT rằng bạn muốn MySQL trả về tên văn bản đầy đủ của tháng

Hãy xem một số ví dụ về hàm MONTHNAME của MySQL và khám phá cách sử dụng hàm MONTHNAME trong MySQL

Ví dụ

mysql> SELECT MONTHNAME['2014-01-27'];
Result: 'January'

mysql> SELECT MONTHNAME['2014-05-08'];
Result: 'May'

mysql> SELECT MONTHNAME['2014-12-29'];
Result: 'December'

Ví dụ MONTHNAME cuối cùng này sẽ hiển thị tên tháng cho ngày hệ thống hiện tại [ngày hệ thống hiện tại được trả về bởi hàm CURDATE]

Thí dụ

Trả về tên của tháng cho một ngày

CHỌN TÊN THÁNG["15-06-2017"];

Tự mình thử »

Định nghĩa và cách sử dụng

Hàm MONTHNAME[] trả về tên của tháng cho một ngày nhất định

cú pháp

Giá trị tham số

Tham sốMô tảngàyBắt buộc. Giá trị ngày hoặc giờ để trích xuất tên tháng từ

chi tiết kỹ thuật

Thêm ví dụ

Thí dụ

Trả về tên của tháng cho một ngày

CHỌN TÊN THÁNG["2017-06-15 09. 34. 21"];

Tự mình thử »

Thí dụ

Trả về tên của tháng cho ngày hệ thống hiện tại

CHỌN TÊN THÁNG[CURDATE[]];

Tự mình thử »

Trong MySQL, bạn có thể sử dụng hàm

Jan
2 với định dạng
Jan
3 để trả về tên tháng ngắn. Ví dụ: bạn có thể trả về
Jan
4 hoặc
Jan
5 thay vì
Jan
6 hoặc
Jan
7

Thí dụ

SELECT DATE_FORMAT['2035-01-18', '%b'];

Kết quả

Jan

Đây là một ví dụ khác chạy qua các tháng khác nhau trong năm

SELECT 
    DATE_FORMAT[date_registered, '%Y-%m'] AS year_month_registered, 
    COUNT[*] AS num_registered
FROM `members`
GROUP BY year_month_registered
1

Kết quả [sử dụng đầu ra dọc]

SELECT 
    DATE_FORMAT[date_registered, '%Y-%m'] AS year_month_registered, 
    COUNT[*] AS num_registered
FROM `members`
GROUP BY year_month_registered
2

Bạn cũng có thể trả về các đơn vị ngày và giờ khác, nhưng bài viết này chỉ nói về việc trả về tên tháng ngắn

Xem Bộ chỉ định định dạng ngày của MySQL để biết danh sách các bộ định dạng định dạng có thể được sử dụng với

Jan
8

Rút Ngắn Tên Đầy Tháng

Nếu bạn cần rút ngắn tên đầy đủ của tháng, bạn luôn có thể sử dụng một hàm như

Jan
9 để chỉ trả về ba ký tự đầu tiên [hoặc bao nhiêu ký tự bạn cần]

Thí dụ

SELECT 
    DATE_FORMAT[date_registered, '%Y-%m'] AS year_month_registered, 
    COUNT[*] AS num_registered
FROM `members`
GROUP BY year_month_registered
5

Kết quả

SELECT 
    DATE_FORMAT[date_registered, '%Y-%m'] AS year_month_registered, 
    COUNT[*] AS num_registered
FROM `members`
GROUP BY year_month_registered
6

Ngoài ra, chúng ta có thể sử dụng một hàm như

SELECT 
    DATE_FORMAT[date_registered, '%Y-%m'] AS year_month_registered, 
    COUNT[*] AS num_registered
FROM `members`
GROUP BY year_month_registered
10 để chuyển đổi thành kiểu dữ liệu chỉ có ba ký tự, chẳng hạn như thế này

SELECT 
    DATE_FORMAT[date_registered, '%Y-%m'] AS year_month_registered, 
    COUNT[*] AS num_registered
FROM `members`
GROUP BY year_month_registered
8

Kết quả

SELECT 
    DATE_FORMAT[date_registered, '%Y-%m'] AS year_month_registered, 
    COUNT[*] AS num_registered
FROM `members`
GROUP BY year_month_registered
9

Trong trường hợp này, chúng tôi nhận được cảnh báo vì chúng tôi đang cắt bớt một giá trị dài hơn

mysql> SELECT MONTHNAME['2014-01-27'];
Result: 'January'

mysql> SELECT MONTHNAME['2014-05-08'];
Result: 'May'

mysql> SELECT MONTHNAME['2014-12-29'];
Result: 'December'
0

Kết quả

mysql> SELECT MONTHNAME['2014-01-27'];
Result: 'January'

mysql> SELECT MONTHNAME['2014-05-08'];
Result: 'May'

mysql> SELECT MONTHNAME['2014-12-29'];
Result: 'December'
1

Rút ngắn tên tháng như thế này có thể ổn khi làm việc với các ngôn ngữ như tiếng Anh, nhưng lưu ý rằng nó có thể không trả về kết quả giống như khi sử dụng định dạng

Jan
3

Để chứng minh điều tôi muốn nói, đây là những gì xảy ra khi tôi chuyển phiên của mình sang sử dụng ngôn ngữ tiếng Thái

Jan
0

Kết quả

Jan
1

Việc cắt bớt tên tháng đầy đủ sẽ trả về một kết quả khác với việc sử dụng công cụ xác định định dạng

Jan
3 để trả về tên tháng ngắn

Làm cách nào để lấy tên tháng và năm kể từ ngày trong SQL?

6 hàm để lấy ngày, tháng và năm từ một ngày trong SQL. .
NGÀY[] , THÁNG[] và NĂM[]
DATEPART[]
DATENAME[]
ĐỊNH DẠNG[]

Làm cách nào để trích xuất tên tháng từ ngày trong MySQL?

Hàm MONTHNAME[] trả về tên của tháng cho một ngày nhất định

Làm cách nào để trích xuất tháng từ cột ngày trong MySQL?

Sử dụng hàm MONTH[] để truy xuất một tháng từ cột ngày/ngày giờ/dấu thời gian trong MySQL. Hàm này chỉ nhận một đối số – có thể là biểu thức trả về giá trị ngày/ngày giờ/dấu thời gian hoặc tên của cột ngày/ngày giờ/dấu thời gian. [Trong ví dụ của chúng tôi, chúng tôi sử dụng cột start_date của kiểu dữ liệu ngày tháng].

Làm cách nào để lấy ngày và tháng kể từ ngày trong MySQL?

Hàm MySQL DAYOFMONTH[] . Ngày trả về sẽ nằm trong khoảng từ 1 đến 31. Nếu ngày là '0000-00-00', hàm sẽ trả về 0. NGÀY[] là từ đồng nghĩa của DAYOFMONTH[].

Chủ Đề