database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 1090 게시물 읽기
No. 1090
날짜 값을 불러오는데요. 정렬이 안되네요
작성자
정이라네
작성일
2003-12-10 14:41
조회수
5,160

안녕하세요. 초보입니다.

다름이 아니라.. 디비에서 데이타를 불러오는데요..

날짜순으로 불러올때.. 아래와 같이 해줫는데

12월 1일부터 9일까지는 desc 로 정렬이 되는데

10일 되니까.. 맨 윗줄이 와야할게 젤끝에 출력이 되네요..

자세한 답변 주시면 감사드리겠습니다.

 

 

select gu_id,gu_name,(Datename(yyyy,su_date )+'-'+Datename(mm,su_date ) +'-'+Datename(dd,su_date )) as su_date from orderbuy
 where order_check=0
 group by gu_id,gu_name,Datename(yyyy,su_date )+'-'+Datename(mm,su_date ) +'-'+Datename(dd,su_date )
 order by Datename(yyyy,su_date )+'-'+Datename(mm,su_date ) +'-'+Datename(dd,su_date ) desc

이 글에 대한 댓글이 총 1건 있습니다.

원인은 Datename()함수에서 일짜 관련 값을 넘겨 줄 때, '09'과 같이

채워진 값이 아니라, 9과 같은 값이 오기 때문에  문자열 정렬에서

'9'가 '10'의 문자 코드값(실제적으로 앞의 '1')보다 크기 때문에

질문하신 결과가 나오는 것 입니다.

 

아래와 같이 쿼리를 변경해 보세요..

 

select gu_id,gu_name,convert(char(10), su_date , 121) as su_date from orderbuy
 where order_check=0
group by  gu_id,gu_name,convert(char(10), su_date , 121)

order by convert(char(10), su_date , 121) desc

가을남자님이 2003-12-16 19:46에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1093SQL2000서버 설치시 에러
장현선
2003-12-11
4185
1092asp질문인지 SQL질문인지 모르겠지만, 인증에 관한 질문 [1]
최명지
2003-12-11
4361
1091smalldate 타입에서 특정 시간 이후의 데이터 조회 [1]
guest
2003-12-10
5286
1090날짜 값을 불러오는데요. 정렬이 안되네요 [1]
정이라네
2003-12-10
5160
1089상황에 따른 다른 값 구하기. [1]
정명자
2003-12-09
4735
1085테이블에서 400행씩 select해서 insert할려면 어떻게 해야하죠? [1]
지형준
2003-12-08
5103
1084DB가 있는 현재의 Time을 얻어오려면? [1]
궁금이
2003-12-08
4500
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다