복붙노트

[SQL] SQL. SP에 또는 함수는 금요일의 다음 날짜를 계산한다

SQL

SQL. SP에 또는 함수는 금요일의 다음 날짜를 계산한다

나는 주어진 날짜에 다음주 금요일 날짜를 반환하는 저장 프로 시저를 작성해야합니까? - 예를 들어, 날짜가 2011년 5월 12일 경우, 그것은 2011년 5월 13일 금요일 날짜 옆에 반환해야합니다. 당신이 2011년 5월 16일을 전달하는 경우, 그것은 날짜가 2011년 5월 20일 (금)이다 반환해야합니다. 당신이 날짜로 금요일을 전달하면, 그것은 동일한 날짜를 반환해야합니다.

해결법

  1. ==============================

    1.이 출력을 소비하는 것이 더 쉽습니다 나는이 스칼라 UDF를 만들 것입니다.

    이 출력을 소비하는 것이 더 쉽습니다 나는이 스칼라 UDF를 만들 것입니다.

    CREATE FUNCTION dbo.GetNextFriday(
    @D DATETIME
    )
    RETURNS DATETIME 
    WITH SCHEMABINDING, RETURNS NULL ON NULL INPUT
    AS
    BEGIN
    RETURN DATEADD(DAY,(13 - (@@DATEFIRST + DATEPART(WEEKDAY,@D)))%7,@D)
    END
    
  2. ==============================

    2.SQL 서버 2008은 2005 년에 사용하는 단지 날짜 변환에 날짜에 대한 귀하의 취향에 날짜 필드를 변경하려면를 위해입니다. 또한 기본 주 값을 시작 변경하지 않는 것으로 가정합니다.

    SQL 서버 2008은 2005 년에 사용하는 단지 날짜 변환에 날짜에 대한 귀하의 취향에 날짜 필드를 변경하려면를 위해입니다. 또한 기본 주 값을 시작 변경하지 않는 것으로 가정합니다.

    DECLARE @PassedDate date = '5/21/2011';
    SELECT DATEADD(DAY,(CASE DATEPART(DW,@PassedDate) WHEN 7 THEN 6 ELSE 6 - DATEPART(DW,@PassedDate) END),@PassedDate);
    
  3. ==============================

    3.당신에게 (다른 것들 중) 다음 주에 일을 얻을 수있는 쉬운 방법을 많이주고, 당신이 분석 서버에서 쉽게 생성 할 수 있습니다, 그리고 그들은 매우 빠른로 색인 할 수 있습니다 훌륭한 솔루션은 여기,하지만 또한 시간 테이블을보고하는 것이 좋습니다.

    당신에게 (다른 것들 중) 다음 주에 일을 얻을 수있는 쉬운 방법을 많이주고, 당신이 분석 서버에서 쉽게 생성 할 수 있습니다, 그리고 그들은 매우 빠른로 색인 할 수 있습니다 훌륭한 솔루션은 여기,하지만 또한 시간 테이블을보고하는 것이 좋습니다.

    당신은 여기에 대한 자세한 내용을 찾을 수 있습니다

    우리의 경우, 동일한 솔루션이 될 것이다

    Select MIN(PK_Date) from Time Where PK_Date > @SomeDate AND Day_Of_Week= 6
    

    그리고 당신은 큰 레코드에 대해이 작업을하고있는 물론, 당신은 또한을 할 수있는 최대 속도 및 효율성을 결합한다.

  4. from https://stackoverflow.com/questions/5984704/sql-the-sp-or-function-should-calculate-the-next-date-for-friday by cc-by-sa and MIT license