SQL에서 datediff 함수를 사용하는 방법은 무엇입니까? (자세한 코드 설명)
SQL Server에서는 T-SQL DATEDIFF() 함수를 사용하여 두 날짜의 차이를 반환할 수 있습니다. 이는 시간, 날짜, smalldatetime, datetime, datetime2 또는 datetimeoffset 값으로 구문 분석할 수 있는 모든 표현식에서 작동합니다. 따라서 두 시간의 차이도 얻을 수 있습니다.
이 문서에서는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undress AI Tool
무료로 이미지를 벗다

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

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

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

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

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

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

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

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

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

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

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