>데이터 베이스 >MySQL 튜토리얼 >SQL Server 테이블에서 지난 달의 기록을 효율적으로 검색하는 방법은 무엇입니까?

SQL Server 테이블에서 지난 달의 기록을 효율적으로 검색하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2025-01-02 16:29:42164검색

How to Efficiently Retrieve Last Month's Records from a SQL Server Table?

SQL Server에서 지난달 레코드 검색

문제:

[member] 데이터베이스 테이블에서 레코드를 가져옵니다. 생성된 날짜를 기준으로 이전 달에 속함 필드.

해결책:

지난 달의 기록을 효율적이고 정확하게 검색하려면 특정 함정을 피하고 다음 접근 방식을 사용해야 합니다.

  1. 독점 범위 사용 필터링:

    포함 범위(예: BETWEEN 연산자)를 사용하는 대신 > 및 < 연산자. 이렇게 하면 해당 월의 첫 번째 날과 마지막 날의 기록이 모두 포함됩니다.

  2. 월 경계 계산:

    적절한 날짜 함수를 사용하여 이전 달과 이번 달의 시작을 표시합니다. 이렇게 하면 상한 범위를 포함하여 발생하는 잠재적인 문제를 방지할 수 있습니다.

    • 이전 달 시작: DATEADD(month, -1, @startOfCurrentMonth)
    • 현재 달 시작: DATEADD(월) , DATEDIFF(월, 0, CURRENT_TIMESTAMP), 0)
  3. 샘플 쿼리:

    DECLARE @startOfCurrentMonth DATETIME
    SET @startOfCurrentMonth = DATEADD(month, DATEDIFF(month, 0, CURRENT_TIMESTAMP), 0)
    
    SELECT *
    FROM Member
    WHERE date_created >= DATEADD(month, -1, @startOfCurrentMonth)
      AND date_created < @startOfCurrentMonth

이 접근 방식은 인덱스가 사용되고 데이터가 부패를 방지하고 지정된 기간 내에 올바른 기록을 검색합니다.

위 내용은 SQL Server 테이블에서 지난 달의 기록을 효율적으로 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.