레코드를 삽입 할 때 현재 주를 저장하는 테이블의 레코드를 원합니다.SQL 서버에서만 현재 주 데이터를 가져 오는 방법은 무엇입니까?
나는 시도했다 :
SELECT PId
,WorkDate
,Hours
,EmpId
FROM Acb
WHERE [email protected] AND WorkDate BETWEEN DATEADD(DAY, -7, GETDATE()) AND GETDATE()
레코드를 삽입 할 때 현재 주를 저장하는 테이블의 레코드를 원합니다.SQL 서버에서만 현재 주 데이터를 가져 오는 방법은 무엇입니까?
나는 시도했다 :
SELECT PId
,WorkDate
,Hours
,EmpId
FROM Acb
WHERE [email protected] AND WorkDate BETWEEN DATEADD(DAY, -7, GETDATE()) AND GETDATE()
이처럼를 수행합니다 :
을 당신은 현재 주를 추출하기 위해 다음 쿼리를 사용할 수 있습니다SET DATEFIRST 1 -- Define beginning of week as Monday
SELECT [...]
AND WorkDate >= dateadd(day, 1-datepart(dw, getdate()), CONVERT(date,getdate()))
AND WorkDate < dateadd(day, 8-datepart(dw, getdate()), CONVERT(date,getdate()))
설명 :
datepart(dw, getdate())
당신이 SET DATEFIRST을 사용하여 지정된 무엇부터 시작하여, 1 ~ 7, 현재 주에 하루의 수를 반환합니다.dateadd(day, 1-datepart(dw, getdate()), getdate())
는 자정에 시작하는 데이터를 원하기 때문에, GETDATE()의 시간 부분을 제거하는 데 사용되는 현재 주CONVERT(date,getdate())
의 시작 부분에 도달하는 일의 필요한 수를 뺍니다.답장을 보내 주셔서 감사합니다. 완벽하게 작동합니다. 다시 감사합니다. @ Twinkles – sona
datepart(dw, getdate())
이 dateadd(day, 1-datepart(dw, getdate()), getdate())
일주일의 마지막 날을 얻기 위해 여기에 7을 추가, 일주일의 첫날해야 현재 요일입니다
더 좋은 방법은
select datepart(ww, getdate()) as CurrentWeek
또한 전주의 주당 대신 사용할 수있을 것이다. 나를 위해 일하는
Google을 통해 발견 된 오래된 메일 인 것으로 알고 있지만 같은 주에있는 날짜가 있지만 다른 연도의 레코드는 반환하지 않습니까? – 3N1GM4
그것.
Select * From Acb Where WorkDate BETWEEN DATEADD(DAY, -7, GETDATE()) AND DATEADD(DAY, 1, GETDATE())
당신은 당신의 쿼리를 잘못 무엇 항 및 제 AND DATEADD(DAY, 1, GETDATE())
후이 줄을 추가해야? –
오늘 날짜에서 지난 7 일 동안의 기록을 보여줍니다. @ shree.pat18 – sona
"현재 주"를 정의하십시오. 일요일이나 월요일에 시작합니까? –