데이터 베이스 MySQL 튜토리얼 SQL에서 datediff 함수를 사용하는 방법은 무엇입니까? (자세한 코드 설명)

SQL에서 datediff 함수를 사용하는 방법은 무엇입니까? (자세한 코드 설명)

Mar 26, 2019 pm 01:46 PM
datediff sql

SQL Server에서는 T-SQL DATEDIFF() 함수를 사용하여 두 날짜의 차이를 반환할 수 있습니다. 이는 시간, 날짜, smalldatetime, datetime, datetime2 또는 datetimeoffset 값으로 구문 분석할 수 있는 모든 표현식에서 작동합니다. 따라서 두 시간의 차이도 얻을 수 있습니다.

SQL에서 datediff 함수를 사용하는 방법은 무엇입니까? (자세한 코드 설명)

이 문서에서는 SQL Server의 DATEDIFF() 함수 사용 예를 제공합니다.

DATEDIFF() 함수 구문은 다음과 같습니다.

DATEDIFF ( datepart , startdate , enddate )

여기서 datepart는 비교하려는 날짜의 일부입니다. startdate는 첫 번째 날짜이고 enddate는 종료 날짜입니다.

작동 방식은 종료 날짜에서 시작 날짜를 빼는 것입니다.

예제 1

다음은 두 날짜 사이의 일수를 계산할 수 있는 기본 예입니다.

SELECT DATEDIFF(day, '2001-01-01', '2002-01-01') AS Result;

결과:

+----------+
| Result   |
|----------|
| 365      |
+----------+

예제 2

다음은 두 개의 변수를 선언한 또 다른 예입니다. 두 개의 다른 날짜를 할당했습니다(저는 DATEADD()를 사용하여 첫 번째 날짜에 1년을 추가했습니다). 그런 다음 DATEDIFF()를 사용하여 해당 날짜의 개별 날짜 부분을 반환합니다.

DECLARE @date1 datetime2 = '2000-01-01 00:00:00.0000000';
DECLARE @date2 datetime2 = DATEADD(year, 1, @date1);
SELECT 
    DATEDIFF( year, @date1, @date2 ) AS Years,
    DATEDIFF( quarter, @date1, @date2 ) AS Quarters,
    DATEDIFF( month, @date1, @date2 ) AS Months,
    DATEDIFF( week, @date1, @date2 ) AS Weeks,
    DATEDIFF( dayofyear, @date1, @date2 ) AS DayOfYear,
    DATEDIFF( day, @date1, @date2 ) AS Days;

결과:

+---------+------------+----------+---------+-------------+--------+
| Years   | Quarters   | Months   | Weeks   | DayOfYear   | Days   |
|---------+------------+----------+---------+-------------+--------|
| 1       | 4          | 12       | 53      | 366         | 366    |
+---------+------------+----------+---------+-------------+--------+

예 3

앞서 언급했듯이 날짜 사이의 시간 부분을 반환할 수도 있습니다. 다음은 날짜/시간 값 사이의 시, 분, 초를 반환하는 예입니다.

DECLARE @date1 datetime2 = '2000-01-01 00:00:00.0000000';
DECLARE @date2 datetime2 = DATEADD(hour, 1, @date1);
SELECT 
    DATEDIFF( hour, @date1, @date2 ) AS Hours,
    DATEDIFF( minute, @date1, @date2 ) AS Minutes,
    DATEDIFF( second, @date1, @date2 ) AS Seconds;

결과:

+---------+-----------+-----------+
| Hours   | Minutes   | Seconds   |
|---------+-----------+-----------|
| 1       | 60        | 3600      |
+---------+-----------+-----------+

예 4

다음은 두 날짜/시간 값 사이의 밀리초, 마이크로초를 가져오는 예입니다. 초의 예 및 나노초:

DECLARE @date1 datetime2 = '2000-01-01 00:00:00.0000000';
DECLARE @date2 datetime2 = DATEADD(millisecond, 1, @date1);
SELECT    
    DATEDIFF( millisecond, @date1, @date2 ) AS Milliseconds,
    DATEDIFF( microsecond, @date1, @date2 ) AS Microseconds,
    DATEDIFF( nanosecond, @date1, @date2 ) AS Nanoseconds;

결과:

+----------------+----------------+---------------+
| Milliseconds   | Microseconds   | Nanoseconds   |
|----------------+----------------+---------------|
| 1              | 1000           | 1000000       |
+----------------+----------------+---------------+

예 5 - 오류!

100년 후에 나노초 수를 반환하는 것과 같은 극단적인 작업을 수행하려고 하면 오류가 발생합니다. 이는 DATEDIFF()가 int 값을 반환하고 100년 동안 int 데이터 유형이 처리할 수 있는 것보다 더 많은 나노초가 있기 때문입니다.

이것을 시도하면 어떻게 될까요?

DECLARE @date1 datetime2 = '2000-01-01 00:00:00.0000000';
DECLARE @date2 datetime2 = DATEADD(year, 100, @date1);
SELECT    
    DATEDIFF( millisecond, @date1, @date2 ) AS Milliseconds,
    DATEDIFF( microsecond, @date1, @date2 ) AS Microseconds,
    DATEDIFF( nanosecond, @date1, @date2 ) AS Nanoseconds;

결과:

The datediff function resulted in an overflow. The number of dateparts separating two date/time instances is too large. Try to use datediff with a less precise datepart.

물론 100년이 몇 나노초인지 알아내야 한다면 DATEDIFF_BIG() 함수를 사용할 수 있습니다. 이 함수는 부호 있는 bigint 데이터 유형을 반환하므로 DATEDIFF()보다 더 큰 값을 반환할 수 있습니다.

관련 권장 사항: "MySQL 튜토리얼"

위 내용은 SQL에서 datediff 함수를 사용하는 방법은 무엇입니까? (자세한 코드 설명)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Stock Market GPT

Stock Market GPT

더 현명한 결정을 위한 AI 기반 투자 연구

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제

열을 SQL의 여러 값과 비교하는 방법은 무엇입니까? 열을 SQL의 여러 값과 비교하는 방법은 무엇입니까? Sep 16, 2025 am 02:12 AM

IN 연산자를 사용하여 열을 선택*Fromployeeswheredepartment_idin (1,2,3)과 같은 여러 값과 효율적으로 비교하십시오. 여러 값이 제외되면 NOTIN을 사용하지만 결과에 영향을 미치는 NULL에주의하십시오.

SQL의 테이블 또는 열에 주석을 추가하는 방법은 무엇입니까? SQL의 테이블 또는 열에 주석을 추가하는 방법은 무엇입니까? Sep 21, 2025 am 05:22 AM

UseCommentOncolumnoraltertablewithCommentTodocumentTables 및 ColumnsInsql; syntaxvariesBydbms - postgresqlandoracleUsecommenton, mysqlusescommentincreate/alterstatements 및 andcommentscanbeviewedviasystemtablikedinformation_schema, rantsuppport.

SQL에서 음성 검색에 Soundex 기능을 사용하는 방법은 무엇입니까? SQL에서 음성 검색에 Soundex 기능을 사용하는 방법은 무엇입니까? Sep 21, 2025 am 01:54 AM

SoundEx 함수는 텍스트를 발음을 나타내는 4 자리 코드로 변환하고 첫 번째 문자에 3 자리를 추가하고 모음과 특정 문자를 무시하며, 유사한 발음을 가진 자음을 동일한 숫자로 맵핑하여 발음 기반 검색을 실현합니다. 예를 들어, Smith와 Smythe는 모두 S530을 생성하고 유사한 발음을 가진 이름은 Wheresoundex (last_name) = soundex ( 'Smith')를 통해 찾을 수 있습니다. 차이 함수와 결합하여 유사성 점수 0에서 4의 유사성 점수를 반환하고, 발음 닫기 결과를 필터링 할 수 있으며, 이는 철자 차이를 다루는 데 적합하지만 영어 이외의 이름에 영향을 미치며 성능 최적화에주의를 기울여야합니다.

SQL의 서브 쿼리와 CTE의 차이점은 무엇입니까? SQL의 서브 쿼리와 CTE의 차이점은 무엇입니까? Sep 16, 2025 am 07:47 AM

하위 쿼리는 다른 쿼리에 중첩 된 쿼리입니다. 그들은 간단한 일회성 계산에 적합하며, 선택,에서 또는 시점에 위치 할 수 있습니다. 2. CTE는 복잡한 쿼리의 가독성을 향상시키고 재귀 및 다중 참조를 지원하기 위해 조항으로 정의됩니다. 3. 하위 쿼리는 단일 사용에 적합하며 CTE는 명확한 구조, 재사용 또는 재귀가 필요한 시나리오에 더 적합합니다.

SQL 테이블에서 고아 기록을 찾는 방법은 무엇입니까? SQL 테이블에서 고아 기록을 찾는 방법은 무엇입니까? Sep 17, 2025 am 04:51 AM

tofindorphaneDrecords, usealeftjoinornoTexoTexistStoIndItifyHildRecordsWithOutmatchingParentRecords.forexample, selecto, formorderSoleftJoincustomerscono.customer_id = c.customer_idwherec.customer_idullesturnsorderdonon-allinternon-allernon-allernon-allernon-allernon-allistomer

SQL 열에 고유 한 제약 조건을 추가하는 방법은 무엇입니까? SQL 열에 고유 한 제약 조건을 추가하는 방법은 무엇입니까? Sep 24, 2025 am 04:27 AM

CreateTable을 사용할 때는 고유 한 키워드를 추가하거나 AltertableAddConstraint를 사용하여 기존 테이블에 제약 조건을 추가하여 열의 값이 고유하고 단일 열 또는 여러 열을 지원하십시오. 추가하기 전에 데이터가 복제되지 않도록해야합니다. DropConstraint를 통해 삭제하고 다른 데이터베이스와 NULL 값의 구문 차이에주의를 기울일 수 있습니다.

SQL에서 주어진 날짜의 달의 마지막 날을 얻는 방법은 무엇입니까? SQL에서 주어진 날짜의 달의 마지막 날을 얻는 방법은 무엇입니까? Sep 18, 2025 am 12:57 AM

마지막 _day () 함수 (MySQL, Oracle)를 사용하여 지정된 날짜가 마지막 날 ( '2023-10-15')와 같이 2023-10-31을 반환합니다. 2. SQLServer는 Eomonth () 함수를 사용하여 동일한 함수를 달성합니다. 3. PostgreSQL Date_trunc 및 간격을 통해 월말을 계산합니다. 4. sqlite는 날짜 함수를 사용하여 'startofmonth', '1month'및 '-1day'를 결합하여 결과를 얻습니다.

SQL에서 비 equi 조인을 수행하는 방법은 무엇입니까? SQL에서 비 equi 조인을 수행하는 방법은 무엇입니까? Sep 16, 2025 am 07:37 AM

anon-equijoinusescopisonoperators winder ween, or! =, 또는! = tomatchrowsbetweentables.2.plisuseFulforRangeComparisonSsuchassalaryordateranges.3.syntaxinvolvesspecifingConditionSintheonTheconconditionSinTheonConconconditionSinTheonConconConditionSinTheonforSalargrades.4

See all articles