복붙노트

[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. ==============================

    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. ==============================

    2.ORDER BY MONTH (날짜), DAY (DATE)를 시도

    ORDER BY MONTH (날짜), DAY (DATE)를 시도

    업데이트로 익명 사용자 :

    이 시도:

    ORDER BY YEAR (날짜) DESC, MONTH (날짜) DESC, DAY (DATE) DESC

    JET DB에 완벽하게 일했다.

  3. ==============================

    3.당신은 문자열의 필드를 가지고, 그래서 당신은 날짜로 변환해야합니다

    당신은 문자열의 필드를 가지고, 그래서 당신은 날짜로 변환해야합니다

    order by CONVERT(datetime, EventDate ) desc
    
  4. ==============================

    4.당신은 스키마가 IMO이 질문에 유일하게 허용 대답을 변경 할 수있는 힘을 가지고 있다고 가정하면 (예를 들어, 날짜 SQL Server 2008의 경우) 더 적합한 뭔가 기본 데이터 형식을 변경하는 것입니다.

    당신은 스키마가 IMO이 질문에 유일하게 허용 대답을 변경 할 수있는 힘을 가지고 있다고 가정하면 (예를 들어, 날짜 SQL Server 2008의 경우) 더 적합한 뭔가 기본 데이터 형식을 변경하는 것입니다.

    MM / DD / YYYY 문자열로 날짜를 저장하면 공간이 비효율적 제대로 확인하려면 어렵고 불필요하게 고통스러운 정렬 및 날짜 계산한다.

  5. ==============================

    5.순서는 당신이 어떤 날짜 / 시간 나타내는 유형으로 설정이없는 가정 내가 해결되지이지만, 문자열 이후 무슨 일이, 필드 EVENTDATE의 유형입니다. 그리고 날짜를 작성하는 미국 방법은 종류에 불쾌한

    순서는 당신이 어떤 날짜 / 시간 나타내는 유형으로 설정이없는 가정 내가 해결되지이지만, 문자열 이후 무슨 일이, 필드 EVENTDATE의 유형입니다. 그리고 날짜를 작성하는 미국 방법은 종류에 불쾌한

  6. ==============================

    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
    
  7. from https://stackoverflow.com/questions/4676139/order-by-descending-date-month-day-and-year by cc-by-sa and MIT license