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
운영게시판
최근게시물
CUBRID Q&A 677 게시물 읽기
No. 677
Q.간단한 쿼리인데 잘 안돼네요.
작성자
윤용수
작성일
2007-11-06 19:34
조회수
4,327

간단한 쿼리인데 잘 안돼네요.

 

기간을 정해서 휴일(토요일, 일요일)이 몇개가 있는지 알수 있는 쿼리를 짜고자 합니다.

 

예를 들어 2007년 9월 10일 부터 2007년 10월 10일 까지의 토요일과 일요일이 몇개 있는지

 

를 알고 싶은데.

 

잘 안돼네요..

 

여기서 도움을 받을수 있을까요?

 

^^;;

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

to_char() 함수로 날짜 형식을 문자로 변환하면서 Day 정보를 가져와서 비교하면 되겠습니다.

예를 들어,

create table foo (d_col date, ... );

인 테이블이 있고, d_col에 순차적인 날짜가 들어 있다고 하면,

아래의 질의로 토요일, 일요일의 개수를 가져올 수 있겠습니다.

SELECT count(*)

FROM foo

WHERE to_char(d_col, \'DY\', \'En_US\') in (\'SAT\', \'SUN\');

 

>간단한 쿼리인데 잘 안돼네요.

>

>기간을 정해서 휴일(토요일, 일요일)이 몇개가 있는지 알수 있는 쿼리를 짜고자 합니다.

>

>예를 들어 2007년 9월 10일 부터 2007년 10월 10일 까지의 토요일과 일요일이 몇개 있는지

>

>를 알고 싶은데.

>

>잘 안돼네요..

>

>여기서 도움을 받을수 있을까요?

>

>^^;;

 

서경식님이 2007-11-06 19:34에 작성한 댓글입니다. Edit

안녕하세요.

일자가 필드(dt date)로 있는 상황이라면

select sum(decode(to_char(dt,\'DY\',\'En_US\'),\'SAT\',1,\'SUN\',1,0)) from ... where dt between ...

와 같이 하시면 기간사이의 요일의 갯수를 알수있읍니다.

또한가지 단순히 기간사이의 요일을 구하는 것이라면 구지 DB 를 사용하지 않고 응용에서 처리할 수 있읍니다. 기본적으로 1주일은 7일 인 것을 고려하면,

1. 시작일자의 요일을 수로 변환한다. 즉 일요일이면 0 토요일이면 6

2. 시작일과 종료일사이의 일자 수를 얻는다.

3. 얻어진 일자수를 7로 나눈 값을 얻는다.

4. 얻어진 일자수를 7로 나눈 나머지를 얻는다.

5. 1번에서 얻어진 수에 4번에서 얻어진 수를 더한다.

6. 찾고자 하는 요일이 1에서 얻은 수와 5에서 얻은 수 사이에 있으면 1 아니면 0

7. 원하는 요일의 수는 3번의 결과에 위 6번의 결과를 더한다.

예를 들면 10월 2일과 10월 18일 사이의 수요일의 갯수

1. 10월2일이 화요일이므로 : 2

2. 10월2일과 10월18일 일자수 : 16

3. 나눈 값 : 2

4. 나머지 : 2

5. 1의 값 + 4의 값 : 4

6. 1의값(2) <= 수요일(3) <= 5의값(4) : 1

7. 3의 결과 + 6의 결과 : 3

결과 : 10월2일과 10월18일 사이의 수요일의 수는 3

 

>간단한 쿼리인데 잘 안돼네요.

>

>기간을 정해서 휴일(토요일, 일요일)이 몇개가 있는지 알수 있는 쿼리를 짜고자 합니다.

>

>예를 들어 2007년 9월 10일 부터 2007년 10월 10일 까지의 토요일과 일요일이 몇개 있는지

>

>를 알고 싶은데.

>

>잘 안돼네요..

>

>여기서 도움을 받을수 있을까요?

>

>^^;;

남재우님이 2007-11-06 21:33에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
680Q.리눅스에서 설치중 문의 드립니다. [2]
김남우
2007-11-06
4220
679Q.큐브리드 매니저 utf8 [1]
이진혁
2007-11-06
3897
678Q.createdb 시 에러 [1]
이재환
2007-11-06
3580
677Q.간단한 쿼리인데 잘 안돼네요. [2]
윤용수
2007-11-06
4327
676Q.사소한 것이지만... [1]
아빠불당
2007-11-06
3478
675Q.[큐브리드7.3] 외래키 사용법
김남진
2007-11-06
3853
674Q.MFC환경에서 ODBC로 DB접속 문의 드립니다. [1]
SOMA
2007-11-05
4862
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.052초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다