내림차순 날짜순 정렬 - 월, 일 및 연도
이것은 바보같이 보이지만, 저는 단지 가장 최근의 날짜가 상단에 있는 주문 날짜 목록이 필요합니다.사용.order by DESC
제가 원하는 방식으로 작동하지 않는 것 같습니다.
SELECT *
FROM vw_view
ORDER BY EventDate DESC
월, 일 순으로 주문한 날짜를 알려주지만, 1년은 고려하지 않습니다.예:
12/31/2009
12/31/2008
12/30/2009
12/29/2009
다음과 같은 요구사항:
12/31/2009
12/30/2009
12/29/2009
12/28/2009
등등.
제 생각엔EventDate
날짜가 아니라 char 또는 varchar이며, 그렇지 않으면 조항별로 주문해도 괜찮습니다.
CONVERT를 사용하여 값을 날짜로 변경하고 이를 기준으로 정렬할 수 있습니다.
SELECT *
FROM
vw_view
ORDER BY
CONVERT(DateTime, EventDate,101) DESC
문제는 Sparky가 댓글에서 지적한 것처럼 EventDate 값이 날짜로 변환할 수 없는 경우 쿼리가 실행되지 않는다는 것입니다.
즉, 잘못된 행을 제외하거나 잘못된 행을 결과의 맨 아래로 이동해야 합니다.
잘못된 행을 제외하려면 다음을 추가합니다.WHERE IsDate(EventDate) = 1
나쁜 날짜가 바닥으로 가도록 하려면 사용해야 합니다.CASE
예.
ORDER BY
CASE
WHEN IsDate(EventDate) = 1 THEN CONVERT(DateTime, EventDate,101)
ELSE null
END DESC
해라ORDER BY MONTH(Date),DAY(DATE)
사용해 보십시오.
ORDER BY YEAR(Date) DESC, MONTH(Date) DESC, DAY(DATE) DESC
JET DB에서 완벽하게 작동했습니다.
필드가 문자열에 있으므로 날짜 시간으로 변환해야 합니다.
order by CONVERT(datetime, EventDate ) desc
스키마를 변경할 수 있는 권한이 있다고 가정하면 IMO는 기본 데이터 유형을 더 적합한 것으로 변경하는 것입니다(예:date
SQL Server 2008인 경우).
날짜 저장mm/dd/yyyy
문자열은 공간 효율성이 떨어지고 정확한 검증이 어려우며 정렬 및 날짜 계산이 불필요하게 번거롭습니다.
필드의 유형은 무엇입니까?EventDate
주문이 정확하지 않기 때문에 날짜/시간을 나타내는 유형이 아니라 문자열로 설정되어 있다고 가정합니다.그리고 미국인들이 날짜를 쓰는 방식은 분류하기에 좋지 않습니다.
날짜 형식을 YYYY/MM/DD로 재구성한 경우 이 간단한 문자열 순서를 사용하여 필요한 형식을 지정할 수 있습니다.
또는 SUSTR(store_name, start, length) 명령을 사용하여 정렬 용어를 위 형식으로 재구성할 수 있습니다.
아마도 다음을 사용하여.
SELECT *
FROM vw_view
ORDER BY SUBSTR(EventDate,6,4) + SUBSTR(EventDate, 0, 5) DESC
사용해 보세요.
SELECT *
FROM vw_view
ORDER BY DATE_FORMAT(EventDate, "%m-%d-%y") DESC
언급URL : https://stackoverflow.com/questions/4676139/order-by-descending-date-month-day-and-year
'programing' 카테고리의 다른 글
HTML에서 구성 요소의 선택 도구 태그 제거/바꾸기 (0) | 2023.07.31 |
---|---|
Just SecurityError: 불투명 원본에 localStorage를 사용할 수 없습니다. (0) | 2023.07.31 |
MySQL에서 JSON_EXTRACT를 사용하고 따옴표 없이 문자열을 얻으려면 어떻게 해야 합니까? (0) | 2023.07.31 |
Android가 JS 번들을 로드하지 못했습니다. (0) | 2023.07.31 |
ASPNET ID 2.0에서 사용자 사용 안 함 (0) | 2023.07.31 |