[SQL] 내림차순 날짜별로 주문 - 월, 일, 년
SQL내림차순 날짜별로 주문 - 월, 일, 년
이것은 단순히 상단에 가장 최근 날짜로 주문해야합니다 날짜 목록이 필요 어리석은 것 같지만. DESC로 주문을 사용하면 내가 원하는 방식으로 작동하지 않는 것 같습니다.
SELECT *
FROM vw_view
ORDER BY EventDate DESC
그것은 나에게 월, 일 주문한 날짜를 제공하지만, 고려 년을지지 않습니다. 예를 들어 :
12/31/2009
12/31/2008
12/30/2009
12/29/2009
요구는 더처럼합니다 :
12/31/2009
12/30/2009
12/29/2009
12/28/2009
등등.
해결법
-
==============================
1.나는 EVENTDATE 그렇지 않으면 조항에 의해 주문 괜찮을 것 char 또는 VARCHAR가 아닌 날짜입니다 같은데요.
나는 EVENTDATE 그렇지 않으면 조항에 의해 주문 괜찮을 것 char 또는 VARCHAR가 아닌 날짜입니다 같은데요.
당신은 그하여 날짜와 종류에 값을 변경하려면 CONVERT를 사용할 수 있습니다
SELECT * FROM vw_view ORDER BY CONVERT(DateTime, EventDate,101) DESC
EVENTDATE 쿼리가 실행되지 않습니다 날짜로 변환 할 수없는 값이있는 경우 스파키, 코멘트에서 지적 하듯이의 문제이다.
당신도 나쁜 행을 제외하거나 나쁜 행을하도록해야이 수단은 결과의 맨 아래로 이동
나쁜 행 단지 추가 제외하려면 WHERE ISDATE (EVENTDATE) = 1
나쁜 날짜가 아래로 내려 가서하자, 당신은 CASE를 사용해야합니다
EG
ORDER BY CASE WHEN IsDate(EventDate) = 1 THEN CONVERT(DateTime, EventDate,101) ELSE null END DESC
-
==============================
2.ORDER BY MONTH (날짜), DAY (DATE)를 시도
ORDER BY MONTH (날짜), DAY (DATE)를 시도
업데이트로 익명 사용자 :
이 시도:
ORDER BY YEAR (날짜) DESC, MONTH (날짜) DESC, DAY (DATE) DESC
JET DB에 완벽하게 일했다.
-
==============================
3.당신은 문자열의 필드를 가지고, 그래서 당신은 날짜로 변환해야합니다
당신은 문자열의 필드를 가지고, 그래서 당신은 날짜로 변환해야합니다
order by CONVERT(datetime, EventDate ) desc
-
==============================
4.당신은 스키마가 IMO이 질문에 유일하게 허용 대답을 변경 할 수있는 힘을 가지고 있다고 가정하면 (예를 들어, 날짜 SQL Server 2008의 경우) 더 적합한 뭔가 기본 데이터 형식을 변경하는 것입니다.
당신은 스키마가 IMO이 질문에 유일하게 허용 대답을 변경 할 수있는 힘을 가지고 있다고 가정하면 (예를 들어, 날짜 SQL Server 2008의 경우) 더 적합한 뭔가 기본 데이터 형식을 변경하는 것입니다.
MM / DD / YYYY 문자열로 날짜를 저장하면 공간이 비효율적 제대로 확인하려면 어렵고 불필요하게 고통스러운 정렬 및 날짜 계산한다.
-
==============================
5.순서는 당신이 어떤 날짜 / 시간 나타내는 유형으로 설정이없는 가정 내가 해결되지이지만, 문자열 이후 무슨 일이, 필드 EVENTDATE의 유형입니다. 그리고 날짜를 작성하는 미국 방법은 종류에 불쾌한
순서는 당신이 어떤 날짜 / 시간 나타내는 유형으로 설정이없는 가정 내가 해결되지이지만, 문자열 이후 무슨 일이, 필드 EVENTDATE의 유형입니다. 그리고 날짜를 작성하는 미국 방법은 종류에 불쾌한
-
==============================
6.당신이 YYYY로 날짜 형식을 재구성하면 / MM / DD는 당신은 당신이 필요로하는 포맷하기 달성하기 위해이 단순한 문자열 순서를 사용할 수 있습니다.
당신이 YYYY로 날짜 형식을 재구성하면 / MM / DD는 당신은 당신이 필요로하는 포맷하기 달성하기 위해이 단순한 문자열 순서를 사용할 수 있습니다.
또는, SUBSTR을 사용하여 (STORE_NAME 시작, 길이)은 구조 조정에 위의 형식으로 정렬 용어 수 있어야 명령
아마도 다음을 사용하여
SELECT * FROM vw_view ORDER BY SUBSTR(EventDate,6,4) + SUBSTR(EventDate, 0, 5) DESC
from https://stackoverflow.com/questions/4676139/order-by-descending-date-month-day-and-year by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] CSV (필요 인용과 이스케이프)에 SQL Server Express의 데이터를 내보내기 (0) | 2020.06.27 |
---|---|
[SQL] 함으로써 그룹 카운트 MYSQL (0) | 2020.06.27 |
[SQL] 오라클 : SQL 쿼리는 테이블에 속하는 모든 트리거를 찾는 방법은? (0) | 2020.06.27 |
[SQL] SQL 서버에서 OPTION (MAXDOP 1)을 사용하는 목적은 무엇인가? (0) | 2020.06.27 |
[SQL] 기본 키는 SQL Server의 필요가 있습니까? (0) | 2020.06.27 |