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 2030 게시물 읽기
No. 2030
주별 첫째날 가져오는 스크립트 질문
작성자
김인수(espaek)
작성일
2005-06-15 02:54
조회수
2,899

??? ??? ??????? ??? ???.?

select DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)

? ?? ?? ???? ????? ??? ?? ?? ?? ??? ? ?? ? ???.

 

? > 2005?? 25?? ?? ???

??? ??? ??????.

 

 

?? ????.

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

이전에 본 적이 있는 질문인 것 같기도 한데..

지금 질문하신 글자가 깨져서 전혀 읽을 수가 없네요..

 

아침에 출근해서 머리도 식힐 겸 해서 읽을 수 없는 이 문제를 제목을 바탕으로 해서 프로시저로 만들어 봤습니다..

 

그럼..

 

< 이하 샘플 >

 

-- 이하 프로시저
create procedure usp_get_day_by_given_week(
  @first_weekday varchar(10) = 'sunday'
, @yyyy char(4) = null
, @idx_week smallint = null
)
as

 

declare @stdt datetime
declare @idxdt datetime
declare @first_wd smallint

 

set @first_wd = (case lower(@first_weekday)
                            when 'monday' then 1
                            when 'tuesday' then 2
                            when 'wednesday' then 3
                            when 'thursday' then 4
                            when 'friday' then 5
                            when 'saturday' then 6
                            when 'sunday' then 7
                        end)
set datefirst  @first_wd

 

if @yyyy is null
    set @yyyy = datepart(year, getdate())
if @idx_week is null
    set @idx_week = datepart(week, getdate())

if (@idx_week < 1 or @idx_week > 53)
  begin
    print 'input value is invalid.. @idx_week must be in (1~53)'
    return(0)
  end

set @stdt = @yyyy + '/01/01'
set @idxdt = dateadd(week, @idx_week - 1, @stdt)
select dateadd(day, -(datepart(weekday, @idxdt) - 1), @idxdt)
go

 

 

-- 이하 실행 예

exec usp_get_day_by_given_week
exec usp_get_day_by_given_week 'monday'
exec usp_get_day_by_given_week 'monday', '2005', 25
exec usp_get_day_by_given_week @yyyy = '2005', @idx_week = 25
go

 

-- 샘플 해제

drop procedure usp_get_day_by_given_week
go

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

parameter 설명이 전혀 없네요.. -_-;;

죄송..

 

@first_weekday : default로 일요일이 주의 시작일입니다만, 지정할 수 있습니다.. 예를 들면, monday라든지..

@yyyy : 원하는 년도를 입력합니다.. default로는 내부적으로 현재일자를 기준으로 년도를 산출합니다..

@idx_week : 원하는 주(1~53)를 입력합니다.. default로는 현재 일자가 포함된 주를 산출합니다..

 

그럼..

길가는 나그네..님이 2005-06-15 11:51에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
2034안녕하세요... 락 때문에 죽겠네요... [1]
고세환
2005-06-19
2764
2032쿼리문 작성하라는데... ㅠㅠ [4]
김중생
2005-06-17
3324
2031CUBE 를 만들려고 하는데 잘 안되네요..
초보
2005-06-15
2218
2030주별 첫째날 가져오는 스크립트 질문 [2]
김인수
2005-06-15
2899
2029커서로 계산하기 ^-^ 그냥 참고로 보셔요
석이
2005-06-15
3109
2026회원통계 보기 (나별 성별~) [6]
석이
2005-06-14
3665
2025DTS 실행을 VB Script로 저장한후에 이를 실행하려면? [3]
나그네
2005-06-13
2535
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다