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 2013 게시물 읽기
No. 2013
선택월의 주만 구할 수 있는 스크립트 급구합니다.
작성자
한스(okhans)
작성일
2005-06-08 13:47
조회수
3,334

선택 한 월의 주를 datepart를 사용해서 구할려고 합니다.

다음과 같이 구할 수는 있는데.. 프로그램에 적용시킬려면 넘 조잡해보입니다..ㅡㅡ;;

좋은 script 없나요?

 

select distinct datepart(wk, a) as bb
from (
select '20050601' as a
union select '20050602' as a
union select '20050603' as a
union select '20050604' as a
union select '20050605' as a
union select '20050606' as a
union select '20050607' as a
union select '20050608' as a
union select '20050609' as a
union select '20050610' as a
union select '20050611' as a
union select '20050612' as a
union select '20050613' as a
union select '20050614' as a
union select '20050615' as a
union select '20050616' as a
union select '20050617' as a
union select '20050618' as a
union select '20050619' as a
union select '20050620' as a
union select '20050621' as a
union select '20050622' as a
union select '20050623' as a
union select '20050624' as a
union select '20050625' as a
union select '20050626' as a
union select '20050627' as a
union select '20050628' as a
union select '20050629' as a
union select '20050630' as a
) aa
order by datepart(wk, a)

실행해보면 값은 이렇게 나옴니다.

bb
23
24
25
26
27

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

용도가 뭔지는 잘 모르겠지만, 일단 min, max를 구하면 되지 않을까요?

 

그럼..

 

declare @yyyymm char(6)
set @yyyymm = '200506'

 

select datepart(wk, convert(datetime, @yyyymm + '01'))
select datepart(wk, convert(datetime, convert(char(6), convert(int, @yyyymm) + 1) + '01') - 1 - 1)


 

길가는 나그네..님이 2005-06-08 15:39에 작성한 댓글입니다.
이 댓글은 2005-06-08 15:39에 마지막으로 수정되었습니다. Edit

헉... 그럼 되네요.

계속 between만 생각 했는데 감사합니다^^

글구 이넘의 용도는여

탄력근로제 때문에 각 월의 주별 근무표를 작성할때 쓸 넘입니다.

근태 프로그램 다시 만들고 있습니다.

야튼 다시함 감솨합니다~~

한스님이 2005-06-08 16:07에 작성한 댓글입니다. Edit

음.. 두번째 script는 마지막달에서 에러가 뜨는군여.

다음과 같이 수정해서 적용했습니다.

참고하세요~

 

declare @yyyymm char(6)
set @yyyymm = '200512'

 

select datepart(wk, DateAdd(dd, -1, DateAdd(mm, 1, convert(datetime, @yyyymm+'01'))))

 

한스님이 2005-06-08 16:30에 작성한 댓글입니다. Edit

나그네님께서 하신 것이 그 형태는 맞으나

이게 날짜의 형태이다 보니

하루가 더해진 날짜 즉 13월이 나온 형태인듯합니다.

그래서 에러가 나는 것은 당연하지 않을까 싶네요 ^^

여리님이 2005-06-08 17:14에 작성한 댓글입니다. Edit

그렇네요.. ^^;;

날짜개념이 없는 느긋한 나그네라서.. 헤~

 

역시 날짜는 날짜함수를 사용하는 것이 바람직해 보이네요..

감사~~~

길가는 나그네..님이 2005-06-08 17:37에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
2017서버 비정상종료 후 DB 가 분리되어 연결되지 않습니다. [1]
손만경
2005-06-09
3485
2016데드락 문제!! [2]
고세환
2005-06-09
5138
2015데이터 베이스가 홀라당 날라 갔어요 ㅠ.ㅠ [1]
nuno
2005-06-09
3169
2013선택월의 주만 구할 수 있는 스크립트 급구합니다. [5]
한스
2005-06-08
3334
2012[접속에러18456]접속에러 원인 좀알려줘요 [1]
이지송
2005-06-08
6367
2011데이터 베이스 문제 입니다. 한번 풀어보세요 [11]
석이
2005-06-08
7663
2010쿼리를 어떻게 맹그러야할지... [4]
준팔이
2005-06-07
2788
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다