Nhận tên tháng ngắn từ số tháng trong MySQL

Bạn muốn sắp xếp các hàng theo số tháng, đặt tên tháng (bạn muốn hiển thị tháng 1 trước, tháng 12 trước)

Thí dụ

Bảng

CONCAT('0001 ', birthday_month, ' 01')
1 chứa hai cột. tên và
CONCAT('0001 ', birthday_month, ' 01')
2. Các tháng được đặt tên, không phải bằng số. p>

tênsinh nhật_thángRonan TishaNULLTháng mười hai năm 2020Angie JuliaTháng tưNarelle DillanTháng tưPurdie CaseyTháng GiêngDonna NellNULLBlaze GraemeTháng mười

Bạn muốn sắp xếp các hàng theo

CONCAT('0001 ', birthday_month, ' 01')
2

Dung dịch

SELECT *
FROM birthday
ORDER BY STR_TO_DATE(CONCAT('0001 ', birthday_month, ' 01'), '%Y %M %d');

Kết quả trông như thế này

tênsinh nhật_thángDonna NellNULLPurdie CaseyTháng GiêngAngie JuliaTháng TưNarelle DillanTháng TưBlaze GraemeTháng MườiRonan TishaNULLTháng Mười Hai

Thảo luận

Để đặt hàng theo tháng, hãy tạo một ngày với tháng này. Để thực hiện việc này, hãy sử dụng hàm STR_TO_DATE(). Nếu bạn có một ngày được lưu trữ dưới dạng một chuỗi ở định dạng '

CONCAT('0001 ', birthday_month, ' 01')
4', bạn có thể chuyển nó thành một ngày bằng cách sử dụng
CONCAT('0001 ', birthday_month, ' 01')
5

Đầu tiên, bạn cần tạo một chuỗi bằng hàm CONCAT(). Năm có thể là bất kỳ năm nào bạn muốn (e. g. ,

CONCAT('0001 ', birthday_month, ' 01')
6) và ngày đó có thể là bất kỳ ngày nào bạn muốn (e. g. ,
CONCAT('0001 ', birthday_month, ' 01')
0)

CONCAT('0001 ', birthday_month, ' 01')

Hàm

CONCAT('0001 ', birthday_month, ' 01')
1 kết hợp tất cả các đối số thành một chuỗi. Chuỗi phải ở định dạng '
CONCAT('0001 ', birthday_month, ' 01')
4', vì vậy đối số thứ hai phải là
CONCAT('0001 ', birthday_month, ' 01')
2;

Sau đó, bạn cần chuyển đổi chuỗi này thành ngày tháng bằng hàm

CONCAT('0001 ', birthday_month, ' 01')
5. Đối số thứ hai của hàm này là định dạng của ngày.
CONCAT('0001 ', birthday_month, ' 01')
5 là viết tắt của năm,
CONCAT('0001 ', birthday_month, ' 01')
6 là viết tắt của tháng (tên đầy đủ của nó, không phải là số), và
CONCAT('0001 ', birthday_month, ' 01')
7 là viết tắt của ngày

STR_TO_DATE(CONCAT('0001 ', birthday_month, ' 01'), '%Y %M %d')

Sử dụng nó với mệnh đề

CONCAT('0001 ', birthday_month, ' 01')
8 để sắp xếp các hàng theo thứ tự tăng dần theo ngày. Nếu bạn muốn xem các hàng theo thứ tự giảm dần, chỉ cần thêm từ khóa
CONCAT('0001 ', birthday_month, ' 01')
9, như thế này

CONCAT('0001 ', birthday_month, ' 01')
0

Lưu ý rằng trong MySQL, các

STR_TO_DATE(CONCAT('0001 ', birthday_month, ' 01'), '%Y %M %d')
0 được hiển thị đầu tiên khi sắp xếp theo thứ tự tăng dần và cuối cùng khi sắp xếp theo thứ tự giảm dần. Ngoài ra, các hàng có cùng
CONCAT('0001 ', birthday_month, ' 01')
2 được hiển thị theo thứ tự ngẫu nhiên (bạn có thể thấy
STR_TO_DATE(CONCAT('0001 ', birthday_month, ' 01'), '%Y %M %d')
2 thứ ba và
STR_TO_DATE(CONCAT('0001 ', birthday_month, ' 01'), '%Y %M %d')
3 thứ tư, hoặc
STR_TO_DATE(CONCAT('0001 ', birthday_month, ' 01'), '%Y %M %d')
3 thứ ba và
STR_TO_DATE(CONCAT('0001 ', birthday_month, ' 01'), '%Y %M %d')
2 thứ tư)

Ở bài viết trước mình đã đề cập đến cách Remove tất cả khoảng trắng khỏi chuỗi trong SQL Server nhưng ở bài viết này mình đã đề cập đến cách chuyển đổi số tháng thành tên tháng trong cơ sở dữ liệu SQL Server, MySQL, Oracle

Trong SQL Server (Tên tháng từ Số tháng)

Trước tiên hãy xem ví dụ về SQL Server

CONCAT('0001 ', birthday_month, ' 01')
6

Đầu tiên, chúng tôi đang khai báo một biến cục bộ để sử dụng cho mục đích ví dụ, là "@month_num"

Trong dòng truy vấn thứ hai, chúng tôi đang sử dụng DateFromParts để cung cấp, năm, số tháng và ngày, với định dạng và nhận kết quả là 'Tên tháng'

Tương tự, trong dòng truy vấn thứ ba, chúng tôi sử dụng kết hợp các hàm 'DATENAME' và hàm 'DATEADD' để lấy tên tháng từ số tháng

đầu ra

Nhận tên tháng ngắn từ số tháng trong MySQL

Nếu bạn muốn lấy tên tháng hiện tại, bạn có thể sử dụng trực tiếp truy vấn bên dưới

CONCAT('0001 ', birthday_month, ' 01')
7

Điều này sẽ cung cấp cho bạn đầu ra dưới dạng tên tháng hiện tại, tôi. e, bây giờ hãy xuất cho tôi "tháng 6", vì hôm nay là ngày 8 tháng 6

Trong MySQL

Bây giờ, hãy xem cách chúng ta có thể lấy tên tháng từ số tháng trong Cơ sở dữ liệu MySQL

Chúng ta có thể sử dụng STR_TO_DATE() để chuyển đổi số thành ngày, sau đó quay lại với MONTHNAME() để lấy Tên tháng trong MySQL

CONCAT('0001 ', birthday_month, ' 01')
8

Đây là đầu ra của truy vấn trên

Nhận tên tháng ngắn từ số tháng trong MySQL

Trong Oracle

Trong Oracle, chúng ta có thể sử dụng kết hợp các hàm ‘TO_CHAR’ và ‘TO_DATE’ để lấy tên tháng từ số tháng

CONCAT('0001 ', birthday_month, ' 01')
9

đầu ra

CONCAT('0001 ', birthday_month, ' 01')
0

Trong Postgresql

Trong Postgresql, bạn chỉ cần sử dụng truy vấn bên dưới để lấy tên tháng từ số, dưới dạng Tên đầy đủ và Tên viết tắt

Làm cách nào để lấy tên tháng từ số tháng 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 để lấy tên tháng ngắn từ ngày trong MySQL?

Trong MySQL, bạn có thể sử dụng hàm DATE_FORMAT() với định dạng %b để trả về tên tháng ngắn. Ví dụ: bạn có thể trả về Jan hoặc Feb thay vì January hoặc February

Làm cách nào để lấy tên ngắn của tháng trong SQL?

Cách lấy tên tháng ngắn trong SQL .
mysql. MySQL có hàm DATE_FORMAT() có thể được sử dụng để trả về tên tháng ngắn từ một ngày. CHỌN NGÀY_FORMAT('2030-02-01', '%b');.
Máy chủ SQL. Có một số cách để làm điều đó trong SQL Server. .
tiên tri. .
PostgreSQL. .
MariaDB

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

1. Để đổi số tháng thành tên tháng chúng ta phải dùng hàm MONTHNAME() , hàm này lấy cột ngày hoặc chuỗi ngày tháng và trả về Tháng .