Định dạng ngày của MySQL DD / MM / YYYY chọn truy vấn?


139

Tôi hơi bối rối về cách đặt hàng theo định dạng ngày.

Đối với định dạng, YYYY-MM-DDbạn sẽ làm điều này:...ORDER BY date DESC...

Làm thế nào bạn sẽ đặt hàng bằng cách DD/MM/YYYY?

Điều này không hoạt động:

SELECT * FROM $table ORDER BY DATE_FORMAT(Date, '%Y%m%d') DESC LIMIT 14

Câu trả lời:


152

Bạn có thể sử dụng STR_TO_DATE()để chuyển đổi chuỗi của mình thành giá trị ngày của MySQL và ORDER BYkết quả:

ORDER BY STR_TO_DATE(datestring, '%d/%m/%Y')

Tuy nhiên, bạn sẽ khôn ngoan khi chuyển đổi cột thành DATEkiểu dữ liệu thay vì sử dụng chuỗi.


188

Đoán có lẽ bạn chỉ muốn định dạng ngày đầu ra? sau đó là những gì bạn đang theo đuổi

SELECT *, DATE_FORMAT(date,'%d/%m/%Y') AS niceDate 
FROM table 
ORDER BY date DESC 
LIMIT 0,14

Hay bạn thực sự muốn sắp xếp theo ngày trước tháng trước năm?


1
Tôi muốn 14 ngày / hồ sơ mới nhất :) Mặc dù vậy, định dạng trong cơ sở dữ liệu là "DD / MM / YYYY"!
K - Độc tính trong SO đang tăng lên.

Là ngày trong cơ sở dữ liệu là một loại ngày thực tế, hay nó là một loại chuỗi?
người bẫy

2
mysql> DESCRIBE Table;và dán đầu ra
người bẫy

DATE_FORMAT (ngày, '% a') sẽ viết tắt một ngày trong tuần. Tôi đã sử dụng điều này để tạo ra một số boxplots và như vậy trong RStudio.
dùng208145

39
SELECT DATE_FORMAT(somedate, "%d/%m/%Y") AS formatted_date
..........
ORDER BY formatted_date DESC

3
Có phải chỉ có tôi, hoặc %lkhông làm việc? Nó cung cấp 12cho mỗi tháng và tôi đã phải thay đổi %m.
beroe

1
% l dành cho giờ dev.mysql.com/doc/refman/5.5/en/ từ @beroe


10
SELECT DATE_FORMAT(COLUMN_NAME, "%d/%m/%Y %h:%i %p");

HOẶC LÀ

SELECT DATE_FORMAT("2019-05-10 19:30:10", "%d/%m/%Y %h:%i %p");

ĐẦU RA là 10/05/2019 07:30 PM


4

đối với trường hợp của tôi, nó đã làm việc

str_to_date(date, '%e/%m/%Y' )

4

Nếu giờ là quan trọng, tôi đã sử dụng str_to_date(date, '%d/%m/%Y %T' ), %Tgiờ hiển thị giờ ở định dạng hh:mm:ss.


Nó không được gọi là giờ. %Thiển thị giá trị với định dạng thời gian. Nhân tiện, bạn đã nhận được upvote của tôi.
Wolverine

3

ĐẶT HÀNG THEO một loại ngày không phụ thuộc vào định dạng ngày, định dạng ngày chỉ để hiển thị, trong cơ sở dữ liệu, chúng là cùng một dữ liệu.


Định dạng có thể được sử dụng để sắp xếp (nếu ai đó thực sự muốn, có vẻ lạ đối với tôi), nhưng loại đó không thể dựa trên chỉ mục, vì vậy [b] tốn kém [/ b], Chỉ có thể thực hiện sắp xếp các cột được thiết kế tốt bằng chỉ mục ( nhanh) và được tối ưu hóa bởi máy chủ
Jacek Cz
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.