SQLShack (한국어)

DateDiff와 같은 SQL 날짜 형식 함수 SQL 함수와 DateAdd SQL 함수는 DBA가 자주 사용하지만 우리 중 많은 사람들은 이러한 매우 유용한 기능을 완전히 이해하는 데 시간을 투자하지 않았습니다. SQL Server를 막 시작한 전문가에게는 이러한 기능이 가장 먼저 익숙해집니다. 따라서이 기사가 기술 스펙트럼 전반에 걸쳐 모든 사람을위한 약간의 정보를 제공하기를 바랍니다.

관계형 데이터베이스 세계에서 지원되는 가장 흥미로운 데이터 유형 중 하나는 DateTime입니다. 이 기사에서는 SQL Server에서 날짜 시간 데이터 유형을 사용하는 방법을 살펴 보겠습니다. 날짜-시간 데이터 유형의 기본 사항을 이해하고 데이터를 조작하고 날짜-시간 값을 변환하기 위해 SQL Server 내의 기본 제공 함수를 사용하여 날짜-시간 필드를 쿼리하는 방법에 대한 다양한 예를 살펴 봅니다. 몇 가지 경우에 산술 연산을 수행합니다.

먼저 인기있는 SQL 날짜 형식 및 시간 함수를 살펴 보겠습니다.

기본적으로 SQL Server는 기본적으로 언어를 지원합니다. Windows 운영 체제에서 지원하는 SQL Server를 설치할 때 로케일 및 데이터 정렬 설정에 따라 SQL 날짜 형식 표시가 다를 수 있습니다. 재생할 데이터의 종류는 로캘 설정 및 SQL Server 데이터 정렬 설정에 따라 결정됩니다.

SQL Server에서 데이터 유형 DATE에는 두 가지 기본 중립 언어 형식이 있습니다.

  1. YYYYMMDD

    다음 예제 인 HumanResource .Employee 테이블은 HireDate 값의 SQL 날짜 형식을보기 위해 쿼리됩니다.

    1
    2
    3
    4
    5
    6

    AdventureWorks2014 사용;
    GO
    SELECT HireDate, BusinessEntityID, LoginID, JobTitle
    FROM HumanResources.Employee;
    GO

    이제 쿼리 중립 언어 형식을 사용하는 HireDate 열. 쿼리에서 2008 년으로 구성된 정수 값을 전달합니다. 월, 12 및 7 일.

    1
    2
    3

    Select HireDate, BusinessEntityID, LoginID, JobTitle
    FROM HumanResources.Employee
    WHERE HireDate = “20081207”;

    참고 : 기본적으로 입력 값이 숫자임을 의미합니다. SQL 엔진은 내부적으로 그것을 변환하고 실제로 문자 값으로 끝납니다. 따라서 작은 따옴표로 묶여 있습니다.

  2. MM-DD-YYYY(US-Based Format)

    이 SQL 날짜 형식에서 HireDate 열에는 MM-DD-YYYY값이 제공됩니다. 이것은 정수 형식이 아닙니다. HireDate 열에 입력 값 12 -07-2008 의 새 SQL 날짜 형식을 사용하여 동일한 쿼리를 실행 해 보겠습니다. 이제 다음 쿼리를 실행하고 출력을 확인하겠습니다. 출력은 5 개 레코드의 동일한 세트입니다.

    1
    2
    3
    4

    Select HireDate, BusinessEntityID, LoginID, JobTitle
    FROM HumanResources.Employee
    WHERE HireDate = “2008 년 12 월 7 일”;
    이동

    참고 : 중립 언어 형식 값은 암시 적이며 SQL Server가 필요한 변환을 수행합니다. 다른 모든 SQL 날짜 형식은 피연산자 또는 / 및 값의 적절한 변환이 필요합니다.

다음 예제는 SQL 날짜 형식의 부적절한 사용으로 인한 오류 메시지를 표시합니다.

1
2
3

Select HireDate, BusinessEntityID, LoginID, JobTitle
FROM HumanResources.Employee
WHERE HireDate = “25-12-2008 “;

이제 피연산자와 해당 값이 모두 표준 형식 103으로 변환됩니다. CAST 및 Convert 함수에 대한 자세한 내용은 여기를 참조하십시오.다음 예는 HireDate 25 -12-2008

직원의 모든 행을 반환합니다. SQL Server에서 사용할 수있는 날짜 함수 중 일부를 살펴보고 이러한 날짜 함수를 사용하면 날짜의 다른 부분으로 작업하고 날짜 측면에서 작업 할 수있는 일부 기능을 조작 할 수도 있습니다.

DATEPART SQL 함수를 살펴 보겠습니다. 이 함수는 지정된 날짜 열에서 정수 값을 반환합니다.

HireDate 열을 쿼리하여 날짜의 연도 부분 만 반환

다음 예제에서는라는 정수 출력 열을 생성합니다. 연도 값만 반환해야합니다.

1
2
3

HumanResources.Employee에서 DATEPART (YEAR, HireDate)를
로 선택하십시오.
GO

HireDate 쿼리 날짜의 월 부분 만 반환하는 열

다음 예는라는 정수 출력 열을 생성하며 이는 월 값만 반환해야합니다.

1
2

SELECT DATEPART (MONTH, HireDate) AS
FROM HumanResources.Employee;

HireDate 열을 쿼리하여 분기 부분 만 반환합니다. 날짜

다음 예제는라는 정수 출력 열을 생성하며, 이는 월 값만 반환해야합니다.

1
2
3

SELECT DATEPART (QUARTER, HireDate) AS
FROM HumanResources.Employee;
GO

다음 예 orderDate 필드의 특정 날짜에 대한 판매 세부 정보를 반환합니다. 이 예제는 또한 DATEPART SQL 함수의 사용법과 몇 가지 관련 인수를 보여줍니다.

SELECT 문은 함수 이름 인 DATEPART를 선택하고 괄호 안에 두 개의 인수를 사용합니다. 첫째, datepart 인수와 둘째, 날짜 표현식입니다.

DATENAME SQL 함수 사용을 살펴 보겠습니다. DATEPART SQL 함수와 비슷하지만 지정된 날짜 필드에서 문자열을 반환합니다.

다음으로 날짜 및 시간 부분을 정수 값으로 반환하는 결정적 함수를 살펴 보겠습니다. 다음 예에서는 해당 YEAR 및 MONTH 함수에 대한 OrderDate 필드의 정수 값을 반환합니다.

출력은 월별 매출을 기준으로 TotalSales의 집계 된 값입니다.

이제 몇 가지 다른 기능을 살펴 보겠습니다. 우리가 살펴볼 것은 DATEDIFF입니다. DATEDIFF SQL 함수는 두 날짜 사이의 경과 시간을 결정할 수있는 부호있는 정수 값을 반환합니다.

결과를보기 위해 다른 날짜 부분을 사용하는 쿼리를 실행 해 보겠습니다.

다음 예제는 두 DateTime 필드 사이의 시간 부분을 반환합니다. 이 예에서 DateTime 값 사이의 시간, 분 및 초는 DATEDIFF SQL 함수를 사용하여 계산됩니다.

방법 where 절에서 DATEDIFF SQL 함수를 사용하는 방법

다음 예는 조직에서 10 년 이상 근무한 모든 직원을 반환합니다. HireDate 열의 조건부 논리가 120 개월 이상과 비교되는 것은 where 절에 언급되어 있습니다.

1
2
3
4

SELECT *
HumanResources.Employee
WHERE DATEDIFF (MONTH, HireDate, GETDATE ()) > 120;
이동

집계 함수와 함께 DateDiff SQL 함수를 사용하는 방법

다음 예는 첫 고용 날짜 사이의 연도를 반환합니다. 그리고 마지막 고용 날짜. 이 경우 DATEDIFF SQL 함수의 입력 매개 변수로 사용되는 최소 HireDate 및 최대 HireDate 집계 함수를 찾고 있습니다.이 값을 사용하면 처음 고용 한 때와 마지막으로 고용 한 때까지의 기간을 쉽게 찾을 수 있습니다.

1
2

SELECT DATEDIFF (YEAR, MIN (HireDate), MAX (HireDate)) No_Of_Years
FROM HumanResources.Employee;

DATEADD SQL 함수를 살펴 보겠습니다. 함수는 지정된 날짜 부분에 값을 더하거나 빼고 날짜 부분의 수정 된 값을 반환합니다.

다음 예제를 살펴 보겠습니다. 값 1은 다양한 날짜 부분에 추가되고 값 -1은 시간 날짜 부분에 추가되고 -30은 분 날짜 부분에 추가됩니다.

출력에서 값이 GETDATE () 함수는 정의 된 날짜 부분에 따라 다릅니다.

참고 : DATEADD 및 DATEDIFF SQL 함수는 SELECT에서 사용할 수 있습니다. WHERE, HAVING, GROUP BY 및 ORDER BY 절.

Datadiff vs Datediff_BIG

지금은이 SQL 날짜 형식 기사의 모든 것입니다.…

Wrap Up

지금까지 DATEPART, DATENAME, YEAR, MONTH 및 DAY와 같은 매우 중요한 SQL 날짜 형식 함수를 보았습니다. 특히 DATEADD SQL 함수 및 DATEDIFF SQL 함수에 중점을 둡니다. SQL 서버의 SQL 날짜 형식 기능은 정말 강력하며 영향력있는 데이터 분석 및 보고서를 제공하는 데 정말 도움이됩니다. 경우에 따라 데이터 정렬 설정, 위치 설정을 조정하거나 단순히 텍스트 값의 입력 스트림을 다시 조정하거나 데이터 소스를 수정하면 날짜 시간 문제가 충분합니다.

대부분의 경우 더 잘 작동하므로 중립 언어 형식을 사용하는 것이 좋습니다. 마지막으로 DATEDIFF SQL 함수와 DATEDIFF_BIG SQL 함수의 차이점을 확인했습니다. 이 기사가 마음에 드셨기를 바랍니다. 질문이 있으시면 아래에 자유롭게 댓글을 남겨주세요.

  • 작성자
  • 최근 게시물
저는 데이터베이스 기술에 대한 풍부한 실무 경험을 11 년 이상 가진 데이터베이스 기술자입니다. 저는 Microsoft Certified Professional이며 컴퓨터 응용 프로그램 석사 학위를 받았습니다.
저의 전문 분야는 고 가용성 솔루션 및 크로스 플랫폼 DB 마이그레이션을 구현하는 & 설계에 있습니다. 현재 작업중인 기술은 SQL Server, PowerShell, Oracle 및 MongoDB입니다.
Prashanth Jayaram의 모든 게시물보기

Prashanth Jayaram의 최신 게시물 (전체보기)
  • SQL의 데이터베이스 감사 개요-2021 년 1 월 28 일
  • Azure SQL 데이터베이스와 온-프레미스 SQL Server간에 Azure 데이터 동기화를 설정하는 방법-2021 년 1 월 20 일
  • PowerShell을 사용하여 Azure SQL 데이터베이스 가져 오기 / 내보내기 작업을 수행하는 방법-1 월 14 일 , 2021

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다