MySQL 날짜 형식 DD / MM / YYYY 선택 쿼리?


140

날짜 형식으로 주문하는 방법에 약간 혼란 스럽습니다.

형식의 경우 YYYY-MM-DD다음을 수행하십시오....ORDER BY date DESC...

당신은 어떻게 주문 DD/MM/YYYY하시겠습니까?

작동하지 않습니다.

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

답변:


152

STR_TO_DATE()문자열을 MySQL 날짜 값과 ORDER BY결과 로 변환 하는 데 사용할 수 있습니다 .

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

그러나 DATE문자열을 사용하는 대신 열을 데이터 형식 으로 변환하는 것이 좋습니다 .


188

아마 출력 날짜의 형식을 지정하고 싶습니까? 다음은 당신이 추구하는 것입니다

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

아니면 실제로 전년도 전날로 정렬 하시겠습니까?


1
14 개의 최신 날짜 / 레코드를 원합니다. :) 데이터베이스의 형식은 "DD / MM / YYYY"입니다.
K-SO의 독성이 증가하고 있습니다.

데이터베이스의 날짜가 실제 날짜 유형입니까, 아니면 문자열 유형입니까?
trapper

2
mysql> DESCRIBE Table;출력을 붙여 넣기
trapper

DATE_FORMAT (날짜, '% a')는 요일 약어를 제공합니다. RStudio에서 상자 그림을 만드는 데 사용했습니다.
user208145

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

3
그것은 단지 나 %l입니까 , 아니면 효과가 없습니까? 12매월 제공 되며로 변경해야 %m합니다.
beroe

1
%의 난 시간입니다 dev.mysql.com/doc/refman/5.5/en/... @beroe


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

또는

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

출력은 10/05/2019 07:30 PM입니다



4

시간이 중요하다면, 내가 사용 str_to_date(date, '%d/%m/%Y %T' )%T쇼 형식으로 시간을 hh:mm:ss.


시간이라고하지 않습니다. %T시간 형식으로 값을 표시합니다. 그건 그렇고, 당신은 내 공감대를 얻었다.
울버린

3

ORDER BY 날짜 유형은 날짜 형식에 의존하지 않으며, 날짜 형식은 데이터베이스에서 동일한 데이터임을 표시하기위한 것입니다.


형식을 사용하여 정렬 할 수 있지만 (누군가 정말로 원한다면 이상한 것처럼 보입니다) 그러한 정렬은 인덱스를 기반으로 할 수 없으므로 [b] 비용이 많이 든다 [/ b], 인덱스로 잘 설계된 열에 대해서만 정렬을 실행할 수 있습니다 ( 빠른) 그리고 서버에 의해 최적화
Jacek Cz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.