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 5936 게시물 읽기
No. 5936
Week관련
작성자
박판규(ppk0505)
작성일
2011-08-17 19:02
조회수
6,928

안녕하세요..

날짜에 대해 그 달안에서 몇번째 주에 속하는지 알려고 합니다.

select DATEPART(WEEK,'2011-08-29')  할경우 1년을 기준으로 리턴을 주는데..

8월달을 기준으로 몇번째 주인지 알수 있는 방법이 없는지요??

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

일요일 ~ 토요일 한주 기준이시라면

 

DECLARE @Date DATETIME

SET @Date = '2011-08-06 00:00:00'

 

SELECT DATEDIFF(WEEK, 0, @Date)
 - DATEDIFF(WEEK, 0, DATEADD(MONTH, DATEDIFF(MONTH, 0, @Date), 0)) + 1

 

DATEADD(MONTH, DATEDIFF(MONTH, 0, @Date), 0) 이런식으로 쓰면 달의 1일이 나옵니다.

DATEDIFF(WEEK,........... 를 써서

지정한 날이 해당년도의 몇번째주인지 구하고

지정한 날의 달의 1일이 해당년도의 몇번째주인지 구해서

뺀다음에 + 1을 하면 됩니다.

 

월~일요일이 한주 기준이면 이렇게도 됩니다.

 

DECLARE @Date DATETIME

SET @Date  = '2011-08-07 00:00:00'

 

SELECT (DATEPART(DD, WeekStartDate) + 6) / 7 AS [WEEK]
FROM
(  SELECT @Date - (DATEPART(DW,@Date + 5) % 7) AS WeekStartDate ) AS a

 

월요일로 바꾼 다음에, 더하기 6 나누기 7 해서 그 월요일이 달의 몇번째 주인지 계산하는 형식입니다.

향지님이 2011-08-18 11:07에 작성한 댓글입니다.
이 댓글은 2011-08-18 11:07에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
5939sql 2005 업데이트시 컬럼 크기 관련 에러 [3]
다크나인
2011-08-19
7351
5938Truncate 시 Deadlock 관련
무적
2011-08-18
6532
5937운영데이터를 개발서버로 이관하려고 합니다.2008 R2버전입니다. [2]
자민
2011-08-18
6480
5936Week관련 [1]
박판규
2011-08-17
6928
5935형변환
오공
2011-08-17
6649
5934쿼리 질문 MS-SQL 2008 - 문자열 분할.. 좀 복잡해요 [3]
우세연
2011-08-15
7658
5932자동증가로 설정하면 몇건까지 증가되나요 [1]
김길동
2011-08-12
7272
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다