>데이터 베이스 >MySQL 튜토리얼 >CASE 문 없이 SQL Server에서 월 번호를 월 이름으로 변환하는 방법은 무엇입니까?

CASE 문 없이 SQL Server에서 월 번호를 월 이름으로 변환하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-18 19:06:15934검색

How to Convert Month Numbers to Month Names in SQL Server Without CASE Statements?

SQL Server: 월 숫자를 이름으로 효율적으로 변환

SQL Server 데이터베이스는 월을 숫자 값(1월은 1, 2월은 2 등)으로 저장하는 경우가 많습니다. 이 기사에서는 번거로운 CASE

을 사용하지 않고 이러한 숫자 표현을 해당 월 이름으로 변환하는 방법을 보여줍니다.

DATENAME 기능 활용

간결한 솔루션의 핵심은 SQL Server에 내장된 DATENAME 기능에 있습니다. 이 기능은 월 이름을 포함하여 날짜의 특정 부분을 추출합니다.

솔루션

다음 SQL 쿼리는 변환을 우아하게 처리합니다.

<code class="language-sql">SELECT DATENAME(MONTH, DATEADD(MONTH, @MonthNumber, 0) - 1)</code>

설명:

  • DATEADD(MONTH, @MonthNumber, 0): 기본 날짜 '0'(1900년 1월 1일을 나타냄)에 입력 @MonthNumber(월을 나타냄)을 추가합니다. 이는 교묘하게 목표 월의 첫날에 위치를 지정합니다.
  • - 1: 하루를 빼면 DATENAME이 원하는 달의 이름을 정확하게 반환하여 일대일 오류를 방지할 수 있습니다.
  • DATENAME(MONTH, ...): 마지막으로 DATENAME은 계산된 날짜에서 월 이름을 추출합니다.

대체 접근 방식:

동일하게 효과적인 대안은 다음과 같습니다.

<code class="language-sql">SELECT DATENAME(MONTH, DATEADD(MONTH, @MonthNumber, -1))</code>

이것은 1월 1일보다 한 달 전 날짜에 월 숫자를 직접 추가하여 약간 더 간결한 방식으로 동일한 결과를 얻습니다.

사용방법:

@MonthNumber을 숫자로 된 월 값(1-12)으로 바꾸세요. 그러면 쿼리는 해당 월 이름을 반환합니다. 예:

<code class="language-sql">SELECT DATENAME(MONTH, DATEADD(MONTH, 5, 0) - 1); -- Returns 'May'</code>

위 내용은 CASE 문 없이 SQL Server에서 월 번호를 월 이름으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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