2014-06-24 4 views
2

Sybase ASE 데이터베이스의 테이블에 대한 현재 주 시작 날짜와 종료 날짜를 가져오고 해당 날짜를 삽입 호출에 추가 할 수있는 변수로 반환하려고합니다.Sybase에서 현재 주 시작 및 종료 날짜 받기

이상적으로이 기능은 getDate() 기능을 기반으로 간단히 작동 할 수 있습니다. 나는 다른 방법을 시도했습니다 & 다른 답변을 살펴 보았지만 Sybase 문법을 특별히 다루는 것은 거의 없습니다. 어떤 도움을 주시면 감사하겠습니다!

+1

요일을 찾는 'datepart', 'dw' - 그걸'dateadd '로 굴려 원하는 날짜를 얻어야 할 수도 있습니다. –

답변

4

dateadd의 다음 조합을 사용하여주의 첫날과 마지막 요일을 찾을 수 있습니다. SQL 개발자가별로 없기 때문에 가장 효율적인 방법은 아닐지 모르지만 작동 할 것입니다. 기본 설정은 일요일부터 토요일까지입니다.

declare @dw_number smallint, 
     @to_first_dw smallint, 
     @to_last_dw smallint, 
     @wk_begin_date datetime, 
     @wk_end_date datetime, 

select @dw_number = datepart(dw,getdate()) //get day of week number 

select @to_first_dw = (@dw_number -1) * -1, //get number of days to subtract to get week start 
     @to_last_dw = 7 - @dw_number   //get number of days to add to get week end 

select @wk_begin_date = dateadd(dd,@to_first_dw,getdate()), 
     @wk_end_date = dateadd(dd,@to_last_dw,getdate()) 

select @wk_begin_date, @wk_end_date