λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
μΉ΄ν…Œκ³ λ¦¬ μ—†μŒ

λ‚ μ§œν•¨μˆ˜(GETDATE,DATEADD,DATEPART,DATEDIFF) μ‚¬μš©λ²• & 예제

by 5566 2023. 11. 20.

λͺ©μ°¨

1. λŒ€μ£Όμ œ: λ‚ μ§œν•¨μˆ˜(GETDATE, DATEADD, DATEPART, DATEDIFF) μ†Œκ°œν•˜κΈ°

  • λ‚ μ§œν•¨μˆ˜μ˜ μ€‘μš”μ„±
  • λ‚ μ§œν•¨μˆ˜μ˜ μ’…λ₯˜
  • λ‚ μ§œν•¨μˆ˜μ˜ ν™œμš© μ˜ˆμ‹œ

2. λŒ€μ£Όμ œ: GETDATE ν•¨μˆ˜ μ‚¬μš©λ²•κ³Ό 예제

  • GETDATE ν•¨μˆ˜μ˜ μ—­ν• κ³Ό 의미
  • GETDATE ν•¨μˆ˜μ˜ 문법
  • GETDATE ν•¨μˆ˜ 예제: ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„ 좜λ ₯ν•˜κΈ°

3. λŒ€μ£Όμ œ: DATEADD ν•¨μˆ˜ μ‚¬μš©λ²•κ³Ό 예제

  • DATEADD ν•¨μˆ˜μ˜ μ—­ν• κ³Ό 의미
  • DATEADD ν•¨μˆ˜μ˜ 문법
  • DATEADD ν•¨μˆ˜ 예제: νŠΉμ • λ‚ μ§œμ— 일정 기간을 λ”ν•˜κ±°λ‚˜ λΉΌκΈ°

4. λŒ€μ£Όμ œ: DATEPART ν•¨μˆ˜ μ‚¬μš©λ²•κ³Ό 예제

  • DATEPART ν•¨μˆ˜μ˜ μ—­ν• κ³Ό 의미
  • DATEPART ν•¨μˆ˜μ˜ 문법
  • DATEPART ν•¨μˆ˜ 예제: λ‚ μ§œμ—μ„œ νŠΉμ • λΆ€λΆ„λ§Œ μΆ”μΆœν•˜κΈ° (λ…„, μ›”, 일, μ‹œκ°„, λΆ„ λ“±)

5. λŒ€μ£Όμ œ: DATEDIFF ν•¨μˆ˜ μ‚¬μš©λ²•κ³Ό 예제

  • DATEDIFF ν•¨μˆ˜μ˜ μ—­ν• κ³Ό 의미
  • DATEDIFF ν•¨μˆ˜μ˜ 문법
  • DATEDIFF ν•¨μˆ˜ 예제: 두 λ‚ μ§œ κ°„μ˜ 차이 κ³„μ‚°ν•˜κΈ° (일, μ£Ό, μ›”, 연도 λ“±)

    1. λŒ€μ£Όμ œ: λ‚ μ§œν•¨μˆ˜(GETDATE,DATEADD,DATEPART,DATEDIFF) μ†Œκ°œν•˜κΈ°

λ‚ μ§œμ™€ μ‹œκ°„μ„ λ‹€λ£¨λŠ” ν”„λ‘œκ·Έλž˜λ°μ—μ„œ, λ‚ μ§œ ν•¨μˆ˜λŠ” 맀우 μ€‘μš”ν•©λ‹ˆλ‹€. λ‚ μ§œ ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λ©΄ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ κ°€μ Έμ˜€κ±°λ‚˜, νŠΉμ • λ‚ μ§œμ— 일정 기간을 μΆ”κ°€ν•˜κ±°λ‚˜ λΉΌκ±°λ‚˜, λ‚ μ§œμ—μ„œ νŠΉμ • λΆ€λΆ„λ§Œ μΆ”μΆœν•˜κ±°λ‚˜, 두 λ‚ μ§œ κ°„μ˜ 차이λ₯Ό 계산할 수 μžˆμŠ΅λ‹ˆλ‹€.

λ‚ μ§œ ν•¨μˆ˜μ˜ μ’…λ₯˜λ₯Ό μ‚΄νŽ΄λ³΄λ©΄ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

  • GETDATE: ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ κ°€μ Έμ˜€λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€.
  • DATEADD: νŠΉμ • λ‚ μ§œμ— 일정 기간을 λ”ν•˜κ±°λ‚˜ λΉΌλŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€.
  • DATEPART: λ‚ μ§œμ—μ„œ νŠΉμ • λΆ€λΆ„(λ…„, μ›”, 일, μ‹œκ°„, λΆ„ λ“±)만 μΆ”μΆœν•˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€.
  • DATEDIFF: 두 λ‚ μ§œ κ°„μ˜ 차이(일, μ£Ό, μ›”, 연도 λ“±)λ₯Ό κ³„μ‚°ν•˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€.

μ΄λŸ¬ν•œ λ‚ μ§œ ν•¨μˆ˜λ“€μ€ λ‚ μ§œμ™€ μ‹œκ°„μ„ λ‹€λ£¨λŠ” μž‘μ—…μ—μ„œ μœ μš©ν•˜κ²Œ ν™œμš©λ  수 μžˆμŠ΅λ‹ˆλ‹€. λ‹€μŒμœΌλ‘œ 각 ν•¨μˆ˜μ˜ ν™œμš© μ˜ˆμ‹œλ₯Ό μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

2. λŒ€μ£Όμ œ: GETDATE ν•¨μˆ˜ μ‚¬μš©λ²•κ³Ό 예제

GETDATE ν•¨μˆ˜λŠ” SQLμ—μ„œ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ κ°€μ Έμ˜€λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. 이 ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λ©΄ ν”„λ‘œκ·Έλž¨μ—μ„œ ν˜„μž¬ μ‹œκ°„μ— ν•΄λ‹Ήν•˜λŠ” 데이터λ₯Ό μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

GETDATE ν•¨μˆ˜μ˜ 문법

GETDATE ν•¨μˆ˜μ˜ 문법은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

GETDATE()

GETDATE ν•¨μˆ˜ 예제: ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„ 좜λ ₯ν•˜κΈ°

λ‹€μŒμ€ GETDATE ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ 좜λ ₯ν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€:

SELECT GETDATE() as CurrentDateTime;

μœ„μ˜ μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λ©΄ λ‹€μŒκ³Ό 같이 ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ΄ 좜λ ₯λ©λ‹ˆλ‹€:

CurrentDateTime
-------------------
2022-01-01 12:34:56

GETDATE ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λ©΄ ν”„λ‘œκ·Έλž¨μ—μ„œ ν˜„μž¬ μ‹œκ°„μ„ κ°€μ Έμ™€μ„œ λ‹€μ–‘ν•œ μž‘μ—…μ— ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ λ°μ΄ν„°λ² μ΄μŠ€μ˜ νŠΉμ • ν…Œμ΄λΈ”μ— κΈ°λ‘ν•˜κ±°λ‚˜, ν˜„μž¬ μ‹œκ°„μ— ν•΄λ‹Ήν•˜λŠ” 데이터λ₯Ό μ‘°νšŒν•˜λŠ” λ“±μ˜ μž‘μ—…μ— μœ μš©ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

3. λŒ€μ£Όμ œ: DATEADD ν•¨μˆ˜ μ‚¬μš©λ²•κ³Ό 예제

DATEADD ν•¨μˆ˜λŠ” SQLμ—μ„œ νŠΉμ • λ‚ μ§œμ— 일정 기간을 λ”ν•˜κ±°λ‚˜ λΉΌλŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. 이 ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λ©΄ νŠΉμ • λ‚ μ§œλ₯Ό κΈ°μ€€μœΌλ‘œ μ›ν•˜λŠ” 만큼 λ‚ μ§œλ₯Ό μ‘°μž‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

DATEADD ν•¨μˆ˜μ˜ 문법

DATEADD ν•¨μˆ˜μ˜ 문법은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

DATEADD(datepart, number, date)
  • datepart: κΈ°κ°„μ˜ λ‹¨μœ„λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 'year'λŠ” 연도λ₯Ό μ˜λ―Έν•˜κ³ , 'month'λŠ” 월을 μ˜λ―Έν•©λ‹ˆλ‹€.
  • number: 기간에 λ”ν•˜κ±°λ‚˜ 빼고자 ν•˜λŠ” κ°’μž…λ‹ˆλ‹€. μ–‘μˆ˜λ₯Ό μ‚¬μš©ν•˜λ©΄ ν•΄λ‹Ή 기간을 λ”ν•˜κ³ , 음수λ₯Ό μ‚¬μš©ν•˜λ©΄ ν•΄λ‹Ή 기간을 빼게 λ©λ‹ˆλ‹€.
  • date: 기쀀이 λ˜λŠ” λ‚ μ§œμž…λ‹ˆλ‹€.

DATEADD ν•¨μˆ˜ 예제: νŠΉμ • λ‚ μ§œμ— 일정 기간을 λ”ν•˜κΈ°

λ‹€μŒμ€ DATEADD ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ νŠΉμ • λ‚ μ§œμ— 일정 기간을 λ”ν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€:

DECLARE @StartDate DATETIME;
SET @StartDate = '2021-01-01';

SELECT DATEADD(day, 7, @StartDate) AS NewDate;

μœ„μ˜ μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λ©΄ μž…λ ₯ν•œ κΈ°μ€€ λ‚ μ§œ(@StartDate)에 7일을 λ”ν•œ μƒˆλ‘œμš΄ λ‚ μ§œκ°€ 좜λ ₯λ©λ‹ˆλ‹€:

NewDate
-------------------
2021-01-08

μœ„ μ˜ˆμ œμ—μ„œλŠ” dayλ₯Ό datepart둜 μ§€μ •ν•˜μ—¬ 7일을 @StartDate에 λ”ν•˜λ„λ‘ ν•˜μ˜€μŠ΅λ‹ˆλ‹€. 이와 λ§ˆμ°¬κ°€μ§€λ‘œ year, month, hour, minute λ“± λ‹€μ–‘ν•œ κΈ°κ°„ λ‹¨μœ„λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‚ μ§œλ₯Ό μ‘°μž‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

4. λŒ€μ£Όμ œ: DATEPART ν•¨μˆ˜ μ‚¬μš©λ²•κ³Ό 예제

DATEPART ν•¨μˆ˜λŠ” SQLμ—μ„œ λ‚ μ§œμ™€ μ‹œκ°„μ˜ νŠΉμ • 뢀뢄을 μΆ”μΆœν•˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. 이 ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‚ μ§œμ™€ μ‹œκ°„ κ°’μ—μ„œ 연도, μ›”, 일 λ“±μ˜ νŠΉμ • 뢀뢄을 μΆ”μΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€.

DATEPART ν•¨μˆ˜μ˜ 문법

DATEPART ν•¨μˆ˜μ˜ 문법은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

DATEPART(datepart, date)
  • datepart: μΆ”μΆœν•˜κ³ μž ν•˜λŠ” 뢀뢄을 μ§€μ •ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 'year'λŠ” 연도λ₯Ό μ˜λ―Έν•˜κ³ , 'month'λŠ” 월을 μ˜λ―Έν•©λ‹ˆλ‹€.
  • date: μΆ”μΆœν•˜κ³ μž ν•˜λŠ” λ‚ μ§œ κ°’μž…λ‹ˆλ‹€.

DATEPART ν•¨μˆ˜ 예제: λ‚ μ§œμ™€ μ‹œκ°„μ—μ„œ νŠΉμ • λΆ€λΆ„ μΆ”μΆœν•˜κΈ°

λ‹€μŒμ€ DATEPART ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‚ μ§œμ™€ μ‹œκ°„ κ°’μ—μ„œ νŠΉμ • 뢀뢄을 μΆ”μΆœν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€:

DECLARE @DateTime DATETIME;
SET @DateTime = GETDATE();

SELECT DATEPART(year, @DateTime) AS Year,
       DATEPART(month, @DateTime) AS Month,
       DATEPART(day, @DateTime) AS Day,
       DATEPART(hour, @DateTime) AS Hour,
       DATEPART(minute, @DateTime) AS Minute;

μœ„μ˜ μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λ©΄ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„(GETDATE())μ—μ„œ 연도, μ›”, 일, μ‹œκ°„, 뢄을 μΆ”μΆœν•œ κ²°κ³Όκ°€ 좜λ ₯λ©λ‹ˆλ‹€:

Year    Month    Day    Hour    Minute
----    -----    ---    ----    ------
2022    1        1      12      34

μœ„ μ˜ˆμ œμ—μ„œλŠ” @DateTime λ³€μˆ˜μ— ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„(GETDATE())을 ν• λ‹Ήν•˜κ³ , DATEPART ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ ν•΄λ‹Ή 값을 μΆ”μΆœν•˜μ˜€μŠ΅λ‹ˆλ‹€. 이와 같이 DATEPART ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‚ μ§œμ™€ μ‹œκ°„ κ°’μ˜ νŠΉμ • 뢀뢄을 μΆ”μΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€.

5. λŒ€μ£Όμ œ: DATEDIFF ν•¨μˆ˜ μ‚¬μš©λ²•κ³Ό 예제

DATEDIFF ν•¨μˆ˜λŠ” SQLμ—μ„œ 두 λ‚ μ§œ λ˜λŠ” 두 μ‹œκ°„ μ‚¬μ΄μ˜ 차이λ₯Ό κ³„μ‚°ν•˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. 이 ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 두 λ‚ μ§œ λ˜λŠ” 두 μ‹œκ°„ κ°’ μ‚¬μ΄μ˜ 연도, μ›”, 일 λ“±μ˜ 차이λ₯Ό 계산할 수 μžˆμŠ΅λ‹ˆλ‹€.

DATEDIFF ν•¨μˆ˜μ˜ 문법

DATEDIFF ν•¨μˆ˜μ˜ 문법은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

DATEDIFF(datepart, startdate, enddate)
  • datepart: κ³„μ‚°ν•˜κ³ μž ν•˜λŠ” 차이의 λ‹¨μœ„λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 'year'λŠ” 연도 κ°„μ˜ 차이λ₯Ό μ˜λ―Έν•˜κ³ , 'month'λŠ” μ›” κ°„μ˜ 차이λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€.
  • startdate: 비ꡐ할 첫 번째 λ‚ μ§œ λ˜λŠ” μ‹œκ°„ κ°’μž…λ‹ˆλ‹€.
  • enddate: 비ꡐ할 두 번째 λ‚ μ§œ λ˜λŠ” μ‹œκ°„ κ°’μž…λ‹ˆλ‹€.

DATEDIFF ν•¨μˆ˜ 예제: 두 λ‚ μ§œ κ°„μ˜ 일 수 차이 κ³„μ‚°ν•˜κΈ°

λ‹€μŒμ€ DATEDIFF ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 두 λ‚ μ§œ κ°„μ˜ 일 수 차이λ₯Ό κ³„μ‚°ν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€:

DECLARE @StartDate DATE;
DECLARE @EndDate DATE;
SET @StartDate = '2021-01-01';
SET @EndDate = '2021-01-10';

SELECT DATEDIFF(day, @StartDate, @EndDate) AS DayDifference;

μœ„μ˜ μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λ©΄ μž…λ ₯ν•œ 두 λ‚ μ§œ(@StartDate와 @EndDate) μ‚¬μ΄μ˜ 일 수 차이가 좜λ ₯λ©λ‹ˆλ‹€:

DayDifference
-------------
9

μœ„ μ˜ˆμ œμ—μ„œλŠ” dayλ₯Ό datepart둜 μ§€μ •ν•˜μ—¬ @StartDate와 @EndDate μ‚¬μ΄μ˜ 일 수 차이λ₯Ό κ³„μ‚°ν•˜μ˜€μŠ΅λ‹ˆλ‹€. 이와 λ§ˆμ°¬κ°€μ§€λ‘œ year, month, hour, minute λ“± λ‹€μ–‘ν•œ λ‹¨μœ„λ₯Ό μ‚¬μš©ν•˜μ—¬ 두 λ‚ μ§œ λ˜λŠ” 두 μ‹œκ°„ κ°’ μ‚¬μ΄μ˜ 차이λ₯Ό 계산할 수 μžˆμŠ΅λ‹ˆλ‹€.

5. λŒ€μ£Όμ œ: DATEDIFF ν•¨μˆ˜ μ‚¬μš©λ²•κ³Ό 예제

DATEDIFF ν•¨μˆ˜λŠ” SQLμ—μ„œ 두 λ‚ μ§œ λ˜λŠ” 두 μ‹œκ°„ μ‚¬μ΄μ˜ 차이λ₯Ό κ³„μ‚°ν•˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. 이 ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 두 λ‚ μ§œ λ˜λŠ” 두 μ‹œκ°„ κ°’ μ‚¬μ΄μ˜ 연도, μ›”, 일 λ“±μ˜ 차이λ₯Ό 계산할 수 μžˆμŠ΅λ‹ˆλ‹€.

DATEDIFF ν•¨μˆ˜μ˜ 문법

DATEDIFF ν•¨μˆ˜μ˜ 문법은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

DATEDIFF(datepart, startdate, enddate)
  • datepart: κ³„μ‚°ν•˜κ³ μž ν•˜λŠ” 차이의 λ‹¨μœ„λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 'year'λŠ” 연도 κ°„μ˜ 차이λ₯Ό μ˜λ―Έν•˜κ³ , 'month'λŠ” μ›” κ°„μ˜ 차이λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€.
  • startdate: 비ꡐ할 첫 번째 λ‚ μ§œ λ˜λŠ” μ‹œκ°„ κ°’μž…λ‹ˆλ‹€.
  • enddate: 비ꡐ할 두 번째 λ‚ μ§œ λ˜λŠ” μ‹œκ°„ κ°’μž…λ‹ˆλ‹€.

DATEDIFF ν•¨μˆ˜ 예제: 두 λ‚ μ§œ κ°„μ˜ 일 수 차이 κ³„μ‚°ν•˜κΈ°

λ‹€μŒμ€ DATEDIFF ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 두 λ‚ μ§œ κ°„μ˜ 일 수 차이λ₯Ό κ³„μ‚°ν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€:

DECLARE @StartDate DATE;
DECLARE @EndDate DATE;
SET @StartDate = '2021-01-01';
SET @EndDate = '2021-01-10';

SELECT DATEDIFF(day, @StartDate, @EndDate) AS DayDifference;

μœ„μ˜ μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λ©΄ μž…λ ₯ν•œ 두 λ‚ μ§œ(@StartDate와 @EndDate) μ‚¬μ΄μ˜ 일 수 차이가 좜λ ₯λ©λ‹ˆλ‹€:

DayDifference
-------------
9

μœ„ μ˜ˆμ œμ—μ„œλŠ” dayλ₯Ό datepart둜 μ§€μ •ν•˜μ—¬ @StartDate와 @EndDate μ‚¬μ΄μ˜ 일 수 차이λ₯Ό κ³„μ‚°ν•˜μ˜€μŠ΅λ‹ˆλ‹€. 이와 λ§ˆμ°¬κ°€μ§€λ‘œ year, month, hour, minute λ“± λ‹€μ–‘ν•œ λ‹¨μœ„λ₯Ό μ‚¬μš©ν•˜μ—¬ 두 λ‚ μ§œ λ˜λŠ” 두 μ‹œκ°„ κ°’ μ‚¬μ΄μ˜ 차이λ₯Ό 계산할 수 μžˆμŠ΅λ‹ˆλ‹€.

1. λŒ€μ£Όμ œ: λ‚ μ§œν•¨μˆ˜(GETDATE,DATEADD,DATEPART,DATEDIFF) μ†Œκ°œν•˜κΈ°

GETDATE ν•¨μˆ˜

GETDATE ν•¨μˆ˜λŠ” ν˜„μž¬ μ‹œμŠ€ν…œ λ‚ μ§œμ™€ μ‹œκ°„μ„ λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. 이 ν•¨μˆ˜λŠ” 많이 μ‚¬μš©λ˜λ©°, 주둜 ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ ν•„μš”λ‘œ ν•  λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€.

SELECT GETDATE() AS CurrentDateTime;

μœ„μ˜ μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λ©΄ ν˜„μž¬ μ‹œμŠ€ν…œμ˜ λ‚ μ§œμ™€ μ‹œκ°„μ΄ 좜λ ₯λ©λ‹ˆλ‹€.

DATEADD ν•¨μˆ˜

DATEADD ν•¨μˆ˜λŠ” 주어진 λ‚ μ§œ λ˜λŠ” μ‹œκ°„ 값에 μΌμ •ν•œ μ‹œκ°„ 간격을 λ”ν•˜κ±°λ‚˜ λΊ„ λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€. 이 ν•¨μˆ˜λŠ” νŠΉμ • λ‹¨μœ„(λ…„, μ›”, 일, μ‹œκ°„, λΆ„, 초)λ₯Ό κΈ°μ€€μœΌλ‘œ λ‚ μ§œ λ˜λŠ” μ‹œκ°„ 값을 μ‘°μž‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

DECLARE @StartDate DATETIME;
SET @StartDate = '2021-01-01';

SELECT DATEADD(year, 1, @StartDate) AS NewDate;

μœ„μ˜ μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λ©΄ @StartDateμ—μ„œ 1년을 λ”ν•œ μƒˆλ‘œμš΄ λ‚ μ§œ 값이 좜λ ₯λ©λ‹ˆλ‹€.

DATEPART ν•¨μˆ˜

DATEPART ν•¨μˆ˜λŠ” 주어진 λ‚ μ§œ λ˜λŠ” μ‹œκ°„ κ°’μ—μ„œ νŠΉμ • λ‹¨μœ„(λ…„, μ›”, 일, μ‹œκ°„, λΆ„, 초)의 값을 μΆ”μΆœν•˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. 이 ν•¨μˆ˜λŠ” νŠΉμ • λ‚ μ§œ λ˜λŠ” μ‹œκ°„ κ°’μ˜ νŠΉμ • μš”μ†Œλ₯Ό κ°€μ Έμ˜¬ λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€.

SELECT DATEPART(year, '2021-01-01') AS YearValue;

μœ„μ˜ μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λ©΄ '2021-01-01'의 연도 값인 2021이 좜λ ₯λ©λ‹ˆλ‹€.

DATEDIFF ν•¨μˆ˜

DATEDIFF ν•¨μˆ˜λŠ” 두 λ‚ μ§œ λ˜λŠ” 두 μ‹œκ°„ μ‚¬μ΄μ˜ 차이λ₯Ό κ³„μ‚°ν•˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. 이 ν•¨μˆ˜λŠ” 두 λ‚ μ§œ λ˜λŠ” 두 μ‹œκ°„ κ°’ μ‚¬μ΄μ˜ 연도, μ›”, 일 λ“±μ˜ 차이λ₯Ό 계산할 수 μžˆμŠ΅λ‹ˆλ‹€.

DECLARE @StartDate DATE;
DECLARE @EndDate DATE;
SET @StartDate = '2021-01-01';
SET @EndDate = '2021-01-10';

SELECT DATEDIFF(day, @StartDate, @EndDate) AS DayDifference;

μœ„μ˜ μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λ©΄ @StartDate와 @EndDate μ‚¬μ΄μ˜ 일 수 차이가 좜λ ₯λ©λ‹ˆλ‹€.

μœ„μ—μ„œ μ„€λͺ…ν•œ GETDATE, DATEADD, DATEPART, DATEDIFF ν•¨μˆ˜λŠ” SQLμ—μ„œ 자주 μ‚¬μš©λ˜λŠ” λ‚ μ§œ 및 μ‹œκ°„ κ΄€λ ¨ ν•¨μˆ˜μž…λ‹ˆλ‹€. 이 ν•¨μˆ˜λ“€μ€ λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ λ‚ μ§œμ™€ μ‹œκ°„μ„ μ²˜λ¦¬ν•˜κ³  μ‘°μž‘ν•˜λŠ” 데 μœ μš©ν•˜λ©°, λ‹€μ–‘ν•œ μ—°μ‚°κ³Ό 계산에 ν™œμš©λ©λ‹ˆλ‹€.

- λ‚ μ§œν•¨μˆ˜μ˜ μ€‘μš”μ„±

λ‚ μ§œ ν•¨μˆ˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ λ‚ μ§œ 및 μ‹œκ°„ κ΄€λ ¨ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” 데 μ€‘μš”ν•œ 역할을 ν•©λ‹ˆλ‹€. λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ λ‚ μ§œμ™€ μ‹œκ°„μ€ λ§Žμ€ μž‘μ—…μ— μ‚¬μš©λ˜λŠ” μ€‘μš”ν•œ μš”μ†Œμ΄λ©°, λ‚ μ§œ ν•¨μˆ˜λŠ” μ΄λŸ¬ν•œ μž‘μ—…μ„ μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄ ν•„μˆ˜μ μž…λ‹ˆλ‹€. λ‹€μŒμ€ λ‚ μ§œ ν•¨μˆ˜μ˜ μ€‘μš”μ„±μ„ μ„€λͺ…ν•˜λŠ” λͺ‡ 가지 μ΄μœ μž…λ‹ˆλ‹€:

1. 데이터 뢄석

λ‚ μ§œ ν•¨μˆ˜λŠ” 데이터 뢄석을 μˆ˜ν–‰ν•  λ•Œ 맀우 μœ μš©ν•©λ‹ˆλ‹€. λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ λ‚ μ§œμ™€ μ‹œκ°„ 값은 μ£Όλ¬Έ λ‚ μ§œ, μ‚¬μš©μž 등둝일, 이벀트 λ°œμƒ μ‹œκ°„ λ“±κ³Ό 같은 μ€‘μš”ν•œ 정보λ₯Ό λ‹΄κ³  μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ 정보λ₯Ό ν™œμš©ν•˜μ—¬ 데이터λ₯Ό λΆ„μ„ν•˜κ³  νŒ¨ν„΄μ„ μ‹λ³„ν•˜λŠ” λ°μ—λŠ” λ‚ μ§œ ν•¨μˆ˜κ°€ ν•„μš”ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, νŠΉμ • κΈ°κ°„ λ™μ•ˆμ˜ 맀좜 앑을 κ³„μ‚°ν•˜κ±°λ‚˜, νŠΉμ • μ›”μ˜ μ‚¬μš©μž 등둝 수λ₯Ό ν™•μΈν•˜λŠ” λ“±μ˜ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

2. 데이터 필터링

λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ νŠΉμ • μ‹œκ°„ λ²”μœ„ λ‚΄μ˜ 데이터λ₯Ό ν•„ν„°λ§ν•˜λŠ” μž‘μ—…μ€ 맀우 μΌλ°˜μ μž…λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, νŠΉμ • λ‚ μ§œ 이후에 μƒμ„±λœ μ£Όλ¬Έ λͺ©λ‘μ„ μ‘°νšŒν•˜κ±°λ‚˜, νŠΉμ • 월에 λ“±λ‘λœ μ‚¬μš©μžλ§Œ ν•„ν„°λ§ν•˜λŠ” λ“±μ˜ μž‘μ—…μ„ μˆ˜ν–‰ν•΄μ•Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ μž‘μ—…μ—λŠ” λ‚ μ§œ ν•¨μˆ˜κ°€ ν•„μš”ν•˜λ©°, λ‚ μ§œ ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 데이터λ₯Ό μ›ν•˜λŠ” 쑰건에 맞게 필터링할 수 μžˆμŠ΅λ‹ˆλ‹€.

3. λ‚ μ§œ 계산 및 μ‘°μž‘

λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œλŠ” λ‚ μ§œμ™€ μ‹œκ°„ 값을 κ³„μ‚°ν•˜κ³  μ‘°μž‘ν•΄μ•Ό ν•˜λŠ” κ²½μš°κ°€ λ§ŽμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, νŠΉμ • κΈ°κ°„ μ΄ν›„μ˜ λ‚ μ§œλ₯Ό κ³„μ‚°ν•˜κ±°λ‚˜, νŠΉμ • λ‚ μ§œμ˜ μš”μΌμ„ ν™•μΈν•˜λŠ” λ“±μ˜ μž‘μ—…μ„ μˆ˜ν–‰ν•΄μ•Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ 계산 및 μ‘°μž‘ μž‘μ—…μ—λŠ” DATEADD, DATEPART, DATEDIFF와 같은 λ‚ μ§œ ν•¨μˆ˜κ°€ ν•„μš”ν•˜λ©°, μ΄λŸ¬ν•œ ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ μ›ν•˜λŠ” κ²°κ³Όλ₯Ό 얻을 수 μžˆμŠ΅λ‹ˆλ‹€.

4. 데이터 μ •λ ¬

λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œλŠ” κ²°κ³Όλ₯Ό νŠΉμ • λ‚ μ§œ λ˜λŠ” μ‹œκ°„μ— 따라 μ •λ ¬ν•΄μ•Ό ν•˜λŠ” κ²½μš°κ°€ λ§ŽμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, μ£Όλ¬Έ λ‚ μ§œμ— 따라 μ£Όλ¬Έ λͺ©λ‘μ„ μ •λ ¬ν•˜κ±°λ‚˜, μ‚¬μš©μž 등둝일에 따라 μ‚¬μš©μž λͺ©λ‘μ„ μ •λ ¬ν•˜λŠ” λ“±μ˜ μž‘μ—…μ„ μˆ˜ν–‰ν•΄μ•Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ μž‘μ—…μ—λŠ” λ‚ μ§œ ν•¨μˆ˜κ°€ ν•„μš”ν•˜λ©°, λ‚ μ§œ ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 데이터λ₯Ό μ›ν•˜λŠ” λ°©μ‹μœΌλ‘œ μ •λ ¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ’…ν•©μ μœΌλ‘œ, λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ λ‚ μ§œμ™€ μ‹œκ°„μ€ λ§Žμ€ μž‘μ—…μ— ν•„μš”ν•œ μ€‘μš”ν•œ μš”μ†Œμž…λ‹ˆλ‹€. λ‚ μ§œ ν•¨μˆ˜λŠ” μ΄λŸ¬ν•œ μž‘μ—…μ„ μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄ ν•„μˆ˜μ μ΄λ©°, 데이터 뢄석, 데이터 필터링, λ‚ μ§œ 계산 및 μ‘°μž‘, 데이터 μ •λ ¬κ³Ό 같은 λ‹€μ–‘ν•œ μž‘μ—…μ— ν™œμš©λ©λ‹ˆλ‹€. μ΄λŸ¬ν•œ ν•¨μˆ˜λ“€μ„ ν•™μŠ΅ν•˜κ³  μ‘μš©ν•  수 μžˆλ‹€λ©΄ λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ 더 효과적인 μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμ„ κ²ƒμž…λ‹ˆλ‹€.

- λ‚ μ§œν•¨μˆ˜μ˜ μ’…λ₯˜

λ‚ μ§œ ν•¨μˆ˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ λ‚ μ§œμ™€ μ‹œκ°„μ„ 닀루고 κ³„μ‚°ν•˜λŠ” 데에 μ‚¬μš©λ˜λŠ” ν•¨μˆ˜λ“€μ˜ μ§‘ν•©μž…λ‹ˆλ‹€. λ‹€μ–‘ν•œ μ’…λ₯˜μ˜ λ‚ μ§œ ν•¨μˆ˜κ°€ 있으며, 각 ν•¨μˆ˜λŠ” νŠΉμ •ν•œ λͺ©μ μ— 맞게 μ‚¬μš©λ©λ‹ˆλ‹€. μ—¬λŸ¬ μ’…λ₯˜μ˜ λ‚ μ§œ ν•¨μˆ˜λ“€μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

1. GETDATE

GETDATE ν•¨μˆ˜λŠ” ν˜„μž¬ μ‹œμŠ€ν…œ λ‚ μ§œμ™€ μ‹œκ°„μ„ λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. 이 ν•¨μˆ˜λŠ” 많이 μ‚¬μš©λ˜λ©°, 주둜 ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ ν•„μš”λ‘œ ν•  λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€. GETDATE ν•¨μˆ˜μ˜ μ‚¬μš© μ˜ˆλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

SELECT GETDATE() AS CurrentDateTime;

2. DATEADD

DATEADD ν•¨μˆ˜λŠ” 주어진 λ‚ μ§œ λ˜λŠ” μ‹œκ°„ 값에 μΌμ •ν•œ μ‹œκ°„ 간격을 λ”ν•˜κ±°λ‚˜ λΊ„ λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€. 이 ν•¨μˆ˜λŠ” νŠΉμ • λ‹¨μœ„(λ…„, μ›”, 일, μ‹œκ°„, λΆ„, 초)λ₯Ό κΈ°μ€€μœΌλ‘œ λ‚ μ§œ λ˜λŠ” μ‹œκ°„ 값을 μ‘°μž‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€. DATEADD ν•¨μˆ˜μ˜ μ‚¬μš© μ˜ˆλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

DECLARE @StartDate DATETIME;
SET @StartDate = '2021-01-01';

SELECT DATEADD(year, 1, @StartDate) AS NewDate;

3. DATEPART

DATEPART ν•¨μˆ˜λŠ” 주어진 λ‚ μ§œ λ˜λŠ” μ‹œκ°„ κ°’μ—μ„œ νŠΉμ • λ‹¨μœ„(λ…„, μ›”, 일, μ‹œκ°„, λΆ„, 초)의 값을 μΆ”μΆœν•˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. 이 ν•¨μˆ˜λŠ” νŠΉμ • λ‚ μ§œ λ˜λŠ” μ‹œκ°„ κ°’μ˜ νŠΉμ • μš”μ†Œλ₯Ό κ°€μ Έμ˜¬ λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€. DATEPART ν•¨μˆ˜μ˜ μ‚¬μš© μ˜ˆλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

SELECT DATEPART(year, '2021-01-01') AS YearValue;

4. DATEDIFF

DATEDIFF ν•¨μˆ˜λŠ” 두 λ‚ μ§œ λ˜λŠ” 두 μ‹œκ°„ μ‚¬μ΄μ˜ 차이λ₯Ό κ³„μ‚°ν•˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. 이 ν•¨μˆ˜λŠ” 두 λ‚ μ§œ λ˜λŠ” 두 μ‹œκ°„ κ°’ μ‚¬μ΄μ˜ 연도, μ›”, 일 λ“±μ˜ 차이λ₯Ό 계산할 수 μžˆμŠ΅λ‹ˆλ‹€. DATEDIFF ν•¨μˆ˜μ˜ μ‚¬μš© μ˜ˆλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

DECLARE @StartDate DATE;
DECLARE @EndDate DATE;
SET @StartDate = '2021-01-01';
SET @EndDate = '2021-01-10';

SELECT DATEDIFF(day, @StartDate, @EndDate) AS DayDifference;

μœ„μ—μ„œ μ„€λͺ…ν•œ GETDATE, DATEADD, DATEPART, DATEDIFF ν•¨μˆ˜λŠ” SQLμ—μ„œ 자주 μ‚¬μš©λ˜λŠ” λ‚ μ§œ 및 μ‹œκ°„ κ΄€λ ¨ ν•¨μˆ˜μž…λ‹ˆλ‹€. μ΄λŸ¬ν•œ ν•¨μˆ˜λ“€μ€ λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ λ‚ μ§œμ™€ μ‹œκ°„μ„ μ²˜λ¦¬ν•˜κ³  μ‘°μž‘ν•˜λŠ” 데 μœ μš©ν•˜λ©°, λ‹€μ–‘ν•œ μ—°μ‚°κ³Ό 계산에 ν™œμš©λ©λ‹ˆλ‹€.

- λ‚ μ§œν•¨μˆ˜μ˜ ν™œμš© μ˜ˆμ‹œ

λ‚ μ§œ ν•¨μˆ˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ λ‹€μ–‘ν•œ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” 데에 ν™œμš©λ  수 μžˆμŠ΅λ‹ˆλ‹€. λ‹€μŒμ€ λͺ‡ 가지 λŒ€ν‘œμ μΈ μ˜ˆμ‹œλ₯Ό 톡해 λ‚ μ§œ ν•¨μˆ˜μ˜ ν™œμš© 방법을 μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€:

1. 데이터 필터링

λ‚ μ§œ ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ νŠΉμ • κΈ°κ°„ λ‚΄μ˜ 데이터λ₯Ό 필터링할 수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, νŠΉμ • λ‚ μ§œ 이후에 μƒμ„±λœ μ£Όλ¬Έ λͺ©λ‘μ„ μ‘°νšŒν•˜λ €λ©΄ GETDATE ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ ν˜„μž¬ λ‚ μ§œλ₯Ό κ°€μ Έμ˜¨ λ‹€μŒ, 이λ₯Ό κΈ°μ€€μœΌλ‘œ μ£Όλ¬Έ λ‚ μ§œλ₯Ό 필터링할 수 μžˆμŠ΅λ‹ˆλ‹€.

SELECT *
FROM Orders
WHERE OrderDate > GETDATE();

2. λ‚ μ§œ 계산 및 μ‘°μž‘

λ‚ μ§œ ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‚ μ§œλ₯Ό κ³„μ‚°ν•˜κ±°λ‚˜ μ‘°μž‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, DATEADD ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ νŠΉμ • λ‚ μ§œμ— μΌμ •ν•œ μ‹œκ°„ 간격을 더할 수 μžˆμŠ΅λ‹ˆλ‹€. λ‹€μŒ μ˜ˆμ œλŠ” μ£Όλ¬Έ μΌμžμ— 7일을 λ”ν•œ κ²°κ³Όλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

SELECT DATEADD(day, 7, OrderDate) AS NewOrderDate
FROM Orders;

3. 데이터 μ •λ ¬

λ‚ μ§œ ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 데이터λ₯Ό νŠΉμ • λ‚ μ§œ λ˜λŠ” μ‹œκ°„ κΈ°μ€€μœΌλ‘œ μ •λ ¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, λ“±λ‘μΌμžλ³„λ‘œ μ‚¬μš©μž λͺ©λ‘μ„ μ •λ ¬ν•˜λ €λ©΄ ORDER BY μ ˆμ—μ„œ DATEPART ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

SELECT *
FROM Users
ORDER BY DATEPART(year, RegistrationDate) DESC, DATEPART(month, RegistrationDate) DESC, DATEPART(day, RegistrationDate) DESC;

4. λ‚ μ§œ 차이 계산

DATEDIFF ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 두 λ‚ μ§œ λ˜λŠ” μ‹œκ°„ μ‚¬μ΄μ˜ 차이λ₯Ό 계산할 수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, μ£Όλ¬ΈμΌμžμ™€ λ°°μ†‘μΌμž μ‚¬μ΄μ˜ 일수 차이λ₯Ό κ³„μ‚°ν•˜λ €λ©΄ λ‹€μŒκ³Ό 같이 DATEDIFF ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

SELECT DATEDIFF(day, OrderDate, ShippedDate) AS DaysToShip
FROM Orders;

λ‚ μ§œ ν•¨μˆ˜μ˜ ν™œμš© μ˜ˆμ‹œλŠ” λ‹€μ–‘ν•©λ‹ˆλ‹€. 데이터 필터링, λ‚ μ§œ 계산 및 μ‘°μž‘, 데이터 μ •λ ¬, λ‚ μ§œ 차이 계산 등에 ν™œμš©ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€ μž‘μ—…μ„ 보닀 μ •ν™•ν•˜κ³  효율적으둜 μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ‚ μ§œ ν•¨μˆ˜λ“€μ„ μœ μ—°ν•˜κ²Œ ν™œμš©ν•˜μ—¬ μ›ν•˜λŠ” μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

- λ‚ μ§œν•¨μˆ˜μ˜ ν™œμš© μ˜ˆμ‹œ

λ‚ μ§œ ν•¨μˆ˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ λ‹€μ–‘ν•œ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” 데에 ν™œμš©λ  수 μžˆμŠ΅λ‹ˆλ‹€. λ‹€μŒμ€ λͺ‡ 가지 λŒ€ν‘œμ μΈ μ˜ˆμ‹œλ₯Ό 톡해 λ‚ μ§œ ν•¨μˆ˜μ˜ ν™œμš© 방법을 μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€:

1. 데이터 필터링

λ‚ μ§œ ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ νŠΉμ • κΈ°κ°„ λ‚΄μ˜ 데이터λ₯Ό 필터링할 수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, νŠΉμ • λ‚ μ§œ 이후에 μƒμ„±λœ μ£Όλ¬Έ λͺ©λ‘μ„ μ‘°νšŒν•˜λ €λ©΄ GETDATE ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ ν˜„μž¬ λ‚ μ§œλ₯Ό κ°€μ Έμ˜¨ λ‹€μŒ, 이λ₯Ό κΈ°μ€€μœΌλ‘œ μ£Όλ¬Έ λ‚ μ§œλ₯Ό 필터링할 수 μžˆμŠ΅λ‹ˆλ‹€.

SELECT *
FROM Orders
WHERE OrderDate > GETDATE();

μœ„μ˜ μ˜ˆμ‹œμ—μ„œ GETDATE ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ ν˜„μž¬ λ‚ μ§œλ₯Ό κ°€μ Έμ˜΅λ‹ˆλ‹€. 이λ₯Ό OrderDate와 λΉ„κ΅ν•˜μ—¬ μ£Όλ¬Έ λ‚ μ§œκ°€ ν˜„μž¬ λ‚ μ§œλ³΄λ‹€ 미래인 λ°μ΄ν„°λ§Œμ„ κ°€μ Έμ˜΅λ‹ˆλ‹€.

2. λ‚ μ§œ 계산 및 μ‘°μž‘

λ‚ μ§œ ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‚ μ§œλ₯Ό κ³„μ‚°ν•˜κ±°λ‚˜ μ‘°μž‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, DATEADD ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ νŠΉμ • λ‚ μ§œμ— μΌμ •ν•œ μ‹œκ°„ 간격을 더할 수 μžˆμŠ΅λ‹ˆλ‹€. λ‹€μŒ μ˜ˆμ œλŠ” μ£Όλ¬Έ μΌμžμ— 7일을 λ”ν•œ κ²°κ³Όλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

SELECT DATEADD(day, 7, OrderDate) AS NewOrderDate
FROM Orders;

μœ„μ˜ μ˜ˆμ‹œμ—μ„œ DATEADD ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ OrderDate에 7일을 더해 μƒˆλ‘œμš΄ μ£Όλ¬Έ λ‚ μ§œλ₯Ό κ³„μ‚°ν•©λ‹ˆλ‹€. dayλ₯Ό μ‚¬μš©ν•˜μ—¬ 일 수λ₯Ό κΈ°μ€€μœΌλ‘œ κ³„μ‚°ν•©λ‹ˆλ‹€.

3. 데이터 μ •λ ¬

λ‚ μ§œ ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 데이터λ₯Ό νŠΉμ • λ‚ μ§œ λ˜λŠ” μ‹œκ°„ κΈ°μ€€μœΌλ‘œ μ •λ ¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, λ“±λ‘μΌμžλ³„λ‘œ μ‚¬μš©μž λͺ©λ‘μ„ μ •λ ¬ν•˜λ €λ©΄ ORDER BY μ ˆμ—μ„œ DATEPART ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

SELECT *
FROM Users
ORDER BY DATEPART(year, RegistrationDate) DESC, DATEPART(month, RegistrationDate) DESC, DATEPART(day, RegistrationDate) DESC;

μœ„μ˜ μ˜ˆμ‹œμ—μ„œλŠ” DATEPART ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ RegistrationDate의 연도, μ›”, 일을 κΈ°μ€€μœΌλ‘œ μ‚¬μš©μž λͺ©λ‘μ„ μ •λ ¬ν•©λ‹ˆλ‹€. DESC ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ λ‚΄λ¦Όμ°¨μˆœμœΌλ‘œ μ •λ ¬ν•©λ‹ˆλ‹€.

4. λ‚ μ§œ 차이 계산

DATEDIFF ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 두 λ‚ μ§œ λ˜λŠ” μ‹œκ°„ μ‚¬μ΄μ˜ 차이λ₯Ό 계산할 수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, μ£Όλ¬ΈμΌμžμ™€ λ°°μ†‘μΌμž μ‚¬μ΄μ˜ 일수 차이λ₯Ό κ³„μ‚°ν•˜λ €λ©΄ λ‹€μŒκ³Ό 같이 DATEDIFF ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

SELECT DATEDIFF(day, OrderDate, ShippedDate) AS DaysToShip
FROM Orders;

μœ„μ˜ μ˜ˆμ‹œμ—μ„œλŠ” DATEDIFF ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ OrderDate와 ShippedDate μ‚¬μ΄μ˜ 차이λ₯Ό κ³„μ‚°ν•©λ‹ˆλ‹€. dayλ₯Ό μ‚¬μš©ν•˜μ—¬ 일 수의 차이λ₯Ό κ³„μ‚°ν•©λ‹ˆλ‹€.

λ‚ μ§œ ν•¨μˆ˜μ˜ ν™œμš© μ˜ˆμ‹œλŠ” λ‹€μ–‘ν•©λ‹ˆλ‹€. 데이터 필터링, λ‚ μ§œ 계산 및 μ‘°μž‘, 데이터 μ •λ ¬, λ‚ μ§œ 차이 계산 등에 ν™œμš©ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€ μž‘μ—…μ„ 보닀 μ •ν™•ν•˜κ³  효율적으둜 μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ‚ μ§œ ν•¨μˆ˜λ“€μ„ μœ μ—°ν•˜κ²Œ ν™œμš©ν•˜μ—¬ μ›ν•˜λŠ” μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

2. λŒ€μ£Όμ œ: GETDATE ν•¨μˆ˜ μ‚¬μš©λ²•κ³Ό 예제

GETDATE ν•¨μˆ˜λŠ” ν˜„μž¬ μ‹œμŠ€ν…œ λ‚ μ§œμ™€ μ‹œκ°„μ„ λ°˜ν™˜ν•˜λŠ” 데에 μ‚¬μš©λ©λ‹ˆλ‹€. 이 ν•¨μˆ˜λŠ” 주둜 λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ ν•„μš”λ‘œ ν•˜λŠ” μž‘μ—…μ— ν™œμš©λ©λ‹ˆλ‹€. λ‹€μŒμ€ GETDATE ν•¨μˆ˜μ˜ μ‚¬μš©λ²•κ³Ό μ˜ˆμ œμ— λŒ€ν•œ μƒμ„Έν•œ μ„€λͺ…μž…λ‹ˆλ‹€.

2.1. GETDATE ν•¨μˆ˜ κ°œμš”

GETDATE ν•¨μˆ˜λŠ” ν˜„μž¬ μ‹œμŠ€ν…œ λ‚ μ§œμ™€ μ‹œκ°„μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€. 이 ν•¨μˆ˜λŠ” μ‹œμŠ€ν…œμ˜ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ λ°μ΄ν„°λ² μ΄μŠ€μ˜ ν‘œμ€€ ν˜•μ‹μœΌλ‘œ λ°˜ν™˜ν•΄μ€λ‹ˆλ‹€. GETDATE ν•¨μˆ˜λŠ” λŒ€λΆ€λΆ„μ˜ λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œμ—μ„œ μ§€μ›λ˜λ©°, 일반적으둜 SELECT λ¬Έμ΄λ‚˜ 필터링 μ‘°κ±΄μ—μ„œ μ‚¬μš©λ©λ‹ˆλ‹€.

2.2. GETDATE ν•¨μˆ˜μ˜ μ‚¬μš©λ²•

GETDATE ν•¨μˆ˜λŠ” μ•„λž˜μ™€ 같은 ν˜•μ‹μœΌλ‘œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

SELECT GETDATE() AS CurrentDateTime;

μœ„μ˜ μ˜ˆμ œμ—μ„œ GETDATE ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€. AS ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ λ°˜ν™˜λ˜λŠ” 값을 CurrentDateTimeμ΄λΌλŠ” λ³„μΉ­μœΌλ‘œ μ§€μ •ν•©λ‹ˆλ‹€.

2.3. GETDATE ν•¨μˆ˜ 예제

2.3.1. ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„ κ°€μ Έμ˜€κΈ°

SELECT GETDATE() AS CurrentDateTime;

μœ„μ˜ μ˜ˆμ œμ—μ„œλŠ” GETDATE ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ κ°€μ Έμ˜΅λ‹ˆλ‹€. CurrentDateTimeμ΄λΌλŠ” λ³„μΉ­μœΌλ‘œ κ²°κ³Όλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

2.3.2. μ£Όλ¬Έ λͺ©λ‘μ—μ„œ ν˜„μž¬ λ‚ μ§œ μ΄ν›„μ˜ μ£Όλ¬Έ μ‘°νšŒν•˜κΈ°

SELECT *
FROM Orders
WHERE OrderDate > GETDATE();

μœ„μ˜ μ˜ˆμ œμ—μ„œλŠ” GETDATE ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ ν˜„μž¬ λ‚ μ§œλ₯Ό κ°€μ Έμ˜΅λ‹ˆλ‹€. 이후, OrderDate와 λΉ„κ΅ν•˜μ—¬ ν˜„μž¬ λ‚ μ§œ 이후에 μƒμ„±λœ μ£Όλ¬Έ λͺ©λ‘λ§Œμ„ μ‘°νšŒν•©λ‹ˆλ‹€.

2.4. GETDATE ν•¨μˆ˜ ν™œμš© 방법

GETDATE ν•¨μˆ˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ ν•„μš”λ‘œ ν•˜λŠ” λ‹€μ–‘ν•œ μž‘μ—…μ— μ‚¬μš©λ  수 μžˆμŠ΅λ‹ˆλ‹€. 주문일자, λ“±λ‘μΌμž, 둜그인 μ‹œκ°„ λ“±κ³Ό ν˜„μž¬ λ‚ μ§œλ₯Ό λΉ„κ΅ν•˜κ±°λ‚˜ κ³„μ‚°ν•˜λŠ” λ“±μ˜ μž‘μ—…μ— ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄, νŠΉμ • λ‚ μ§œ 이후에 μƒμ„±λœ μ£Όλ¬Έ λͺ©λ‘μ„ μ‘°νšŒν•˜λ €λ©΄ WHERE μ ˆμ—μ„œ OrderDate > GETDATE()와 같이 GETDATE ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ ν˜„μž¬ λ‚ μ§œμ™€ 비ꡐ할 수 μžˆμŠ΅λ‹ˆλ‹€.

λ˜ν•œ, GETDATE ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ κΈ°λ‘ν•˜κ±°λ‚˜ λ°μ΄ν„°μ˜ μœ νš¨μ„± 검사에 ν™œμš©ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. λ°μ΄ν„°μ˜ κ°±μ‹  μ‹œκ°„μ„ μΆ”μ ν•˜κ±°λ‚˜, μœ νš¨κΈ°κ°„μ΄ μ§€λ‚œ 데이터λ₯Ό ν•„ν„°λ§ν•˜λŠ” 등에 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μœ„μ˜ μ˜ˆμ‹œμ™€ ν•¨κ»˜ GETDATE ν•¨μˆ˜λ₯Ό μœ μ—°ν•˜κ²Œ ν™œμš©ν•˜μ—¬ μ›ν•˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

- GETDATE ν•¨μˆ˜μ˜ μ—­ν• κ³Ό 의미

GETDATE ν•¨μˆ˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ ν˜„μž¬ μ‹œμŠ€ν…œμ˜ λ‚ μ§œμ™€ μ‹œκ°„μ„ κ°€μ Έμ˜¬ λ•Œ μ‚¬μš©λ˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. 이 ν•¨μˆ˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œμ—μ„œ ν˜„μž¬ μ‹œκ°„μ„ μ œκ³΅ν•˜λ―€λ‘œ, λ‹€μ–‘ν•œ μž‘μ—…μ—μ„œ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ ν•„μš”λ‘œ ν•  λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€. μ•„λž˜μ—μ„œλŠ” GETDATE ν•¨μˆ˜μ˜ μ—­ν• κ³Ό μ˜λ―Έμ— λŒ€ν•΄ 더 μžμ„Ένžˆ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

1. ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„ λ°˜ν™˜

GETDATE ν•¨μˆ˜λŠ” κ°€μž₯ 일반적으둜 ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ κ°€μ Έμ˜¬ λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€. 이 ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λ©΄ λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œμ˜ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ ν‘œμ€€ ν˜•μ‹μœΌλ‘œ λ°˜ν™˜λ°›μ„ 수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, SELECT GETDATE();와 같은 SQL 문을 μ‹€ν–‰ν•˜λ©΄ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ΄ λ°˜ν™˜λ©λ‹ˆλ‹€.

2. 데이터 필터링

GETDATE ν•¨μˆ˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ νŠΉμ • κΈ°κ°„ λ‚΄μ˜ 데이터λ₯Ό ν•„ν„°λ§ν•˜λŠ” 데에도 μ‚¬μš©λ  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, WHERE OrderDate > GETDATE();와 같이 쿼리λ₯Ό μž‘μ„±ν•˜λ©΄ ν˜„μž¬ λ‚ μ§œλ₯Ό κΈ°μ€€μœΌλ‘œ μ΄ν›„μ˜ μ£Όλ¬Έ λͺ©λ‘λ§Œμ„ κ°€μ Έμ˜¬ 수 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 νŠΉμ • λ‚ μ§œ 이후에 μƒμ„±λœ 데이터λ₯Ό 필터링할 수 μžˆμŠ΅λ‹ˆλ‹€.

3. 데이터 μ •λ ¬

GETDATE ν•¨μˆ˜λŠ” 데이터λ₯Ό νŠΉμ • λ‚ μ§œ λ˜λŠ” μ‹œκ°„μœΌλ‘œ μ •λ ¬ν•˜λŠ” 데에도 ν™œμš©λ  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 둜그인 기둝의 경우 κ°€μž₯ 졜근의 둜그인 기둝을 μœ„λ‘œ 올리기 μœ„ν•΄ ORDER BY LoginDate DESC와 같은 ꡬ문을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λ•Œ GETDATE ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λ©΄ μ‹€μ‹œκ°„μœΌλ‘œ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ 가져와 μ •λ ¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

4. λ‚ μ§œ 계산 및 μ‘°μž‘

GETDATE ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‚ μ§œλ₯Ό κ³„μ‚°ν•˜κ±°λ‚˜ μ‘°μž‘ν•˜λŠ” 데에도 ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, DATEADD ν•¨μˆ˜μ™€ ν•¨κ»˜ μ‚¬μš©ν•˜μ—¬ νŠΉμ • λ‚ μ§œμ— μΌμ •ν•œ μ‹œκ°„ 간격을 더할 수 μžˆμŠ΅λ‹ˆλ‹€. λ˜λŠ” DATEDIFF ν•¨μˆ˜μ™€ ν•¨κ»˜ μ‚¬μš©ν•˜μ—¬ 두 λ‚ μ§œ μ‚¬μ΄μ˜ 차이λ₯Ό ꡬ할 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ λ‚ μ§œ ν•¨μˆ˜λ“€κ³Ό GETDATE ν•¨μˆ˜λ₯Ό ν•¨κ»˜ μ‚¬μš©ν•˜μ—¬ λ‚ μ§œ 및 μ‹œκ°„ 계산에 ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

GETDATE ν•¨μˆ˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ κ°€μ Έμ˜€λŠ” 데에 μ‚¬μš©λ˜λŠ” μ€‘μš”ν•œ ν•¨μˆ˜μž…λ‹ˆλ‹€. 이λ₯Ό ν™œμš©ν•˜μ—¬ 데이터 필터링, 데이터 μ •λ ¬, λ‚ μ§œ 계산 및 μ‘°μž‘ λ“± λ‹€μ–‘ν•œ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ°μ΄ν„°λ² μ΄μŠ€ μž‘μ—…μ˜ μ •ν™•μ„±κ³Ό μœ νš¨μ„±μ„ μœ μ§€ν•˜κΈ° μœ„ν•΄ GETDATE ν•¨μˆ˜λ₯Ό 적절히 ν™œμš©ν•˜λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€.

- GETDATE ν•¨μˆ˜μ˜ 문법

GETDATE ν•¨μˆ˜λŠ” ν˜„μž¬ μ‹œμŠ€ν…œμ˜ λ‚ μ§œμ™€ μ‹œκ°„μ„ κ°€μ Έμ˜¬ λ•Œ μ‚¬μš©λ˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. μ•„λž˜μ—μ„œλŠ” GETDATE ν•¨μˆ˜μ˜ 문법에 λŒ€ν•΄ μƒμ„Ένžˆ μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€.

1. 문법

GETDATE ν•¨μˆ˜μ˜ 문법은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

GETDATE()

2. μ„€λͺ…

  • GETDATE()λŠ” κ΄„ν˜Έλ‘œ 감싸진 μ•„λ¬΄λŸ° μΈμˆ˜λ„ 받지 μ•ŠλŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€.
  • 이 ν•¨μˆ˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ˜ ν˜„μž¬ μ‹œμŠ€ν…œ λ‚ μ§œμ™€ μ‹œκ°„μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€.
  • λ°˜ν™˜λ˜λŠ” λ‚ μ§œμ™€ μ‹œκ°„μ€ λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œμ˜ ν‘œμ€€ ν˜•μ‹μœΌλ‘œ μ œκ³΅λ©λ‹ˆλ‹€.

3. μ‚¬μš© 예제

μ•„λž˜λŠ” GETDATE ν•¨μˆ˜μ˜ μ‚¬μš© μ˜ˆμ œμž…λ‹ˆλ‹€:

SELECT GETDATE() AS CurrentDateTime;
  • μœ„μ˜ μ˜ˆμ œμ—μ„œλŠ” GETDATE ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ κ°€μ Έμ˜΅λ‹ˆλ‹€.
  • AS ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ λ°˜ν™˜λ˜λŠ” 값을 CurrentDateTimeμ΄λΌλŠ” λ³„μΉ­μœΌλ‘œ μ§€μ •ν•©λ‹ˆλ‹€.
  • μ΄λ ‡κ²Œ ν•˜λ©΄ CurrentDateTimeμ΄λΌλŠ” λ³„μΉ­μœΌλ‘œ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ΄ 결과에 ν‘œμ‹œλ©λ‹ˆλ‹€.

4. μ‹€ν–‰ κ²°κ³Ό

μœ„μ˜ 예제λ₯Ό μ‹€ν–‰ν•˜λ©΄ λ‹€μŒκ³Ό 같은 κ²°κ³Όκ°€ λ°˜ν™˜λ©λ‹ˆλ‹€:

CurrentDateTime
--------------------
2022-07-20 15:30:45
  • μœ„μ˜ κ²°κ³Όμ—μ„œλŠ” CurrentDateTime 열에 2022λ…„ 7μ›” 20일 μ˜€ν›„ 3μ‹œ 30λΆ„ 45초의 ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ΄ ν‘œμ‹œλ©λ‹ˆλ‹€.

GETDATE ν•¨μˆ˜μ˜ 문법은 맀우 κ°„λ‹¨ν•©λ‹ˆλ‹€. ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•  λ•Œ 인수λ₯Ό μ „λ‹¬ν•˜μ§€ μ•ŠμœΌλ©°, λ°˜ν™˜λ˜λŠ” 값은 ν˜„μž¬ μ‹œμŠ€ν…œμ˜ λ‚ μ§œμ™€ μ‹œκ°„μž…λ‹ˆλ‹€. 이 ν•¨μˆ˜λ₯Ό μœ μ—°ν•˜κ²Œ ν™œμš©ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€ μž‘μ—…μ— ν•„μš”ν•œ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ 적절히 ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

- GETDATE ν•¨μˆ˜ 예제: ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„ 좜λ ₯ν•˜κΈ°

μ•„λž˜ μ˜ˆμ œμ—μ„œλŠ” GETDATE ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ 좜λ ₯ν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

1. 예제

SELECT GETDATE() AS CurrentDateTime;

2. μ„€λͺ…

  • μœ„μ˜ μ˜ˆμ œλŠ” SELECT 문을 μ‚¬μš©ν•˜μ—¬ GETDATE() ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜μ—¬ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ κ°€μ Έμ˜€λŠ” κ²ƒμž…λ‹ˆλ‹€.
  • AS ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ λ°˜ν™˜λ˜λŠ” 값을 CurrentDateTimeμ΄λΌλŠ” λ³„μΉ­μœΌλ‘œ μ§€μ •ν•©λ‹ˆλ‹€.
  • μ΄λ ‡κ²Œ ν•˜λ©΄ 결과에 CurrentDateTime μ—΄λ‘œ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ΄ ν‘œμ‹œλ©λ‹ˆλ‹€.

3. μ‹€ν–‰ κ²°κ³Ό

μœ„μ˜ 예제λ₯Ό μ‹€ν–‰ν•˜λ©΄, 예λ₯Ό λ“€μ–΄ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ΄ 2022λ…„ 7μ›” 20일 μ˜€ν›„ 3μ‹œ 30λΆ„ 45초인 경우 λ‹€μŒκ³Ό 같은 κ²°κ³Όκ°€ λ°˜ν™˜λ©λ‹ˆλ‹€:

CurrentDateTime
--------------------
2022-07-20 15:30:45
  • μœ„μ˜ κ²°κ³Όμ—μ„œλŠ” CurrentDateTime 열에 2022λ…„ 7μ›” 20일 μ˜€ν›„ 3μ‹œ 30λΆ„ 45μ΄ˆμ™€ 같은 ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ΄ ν‘œμ‹œλ©λ‹ˆλ‹€.

GETDATE ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λ©΄ κ°„λ‹¨ν•˜κ²Œ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ 좜λ ₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό ν™œμš©ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€ μž‘μ—…μ— ν•„μš”ν•œ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ 가져와야 ν•˜λŠ” 경우, SELECT GETDATE() AS CurrentDateTime;와 같은 ꡬ문을 μ‚¬μš©ν•˜μ—¬ μ‰½κ²Œ 좜λ ₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

GETDATE ν•¨μˆ˜ 예제: ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„ 좜λ ₯ν•˜κΈ°

μ•„λž˜ μ˜ˆμ œμ—μ„œλŠ” GETDATE ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ ν˜„μž¬ μ‹œμŠ€ν…œμ˜ λ‚ μ§œμ™€ μ‹œκ°„μ„ 가져와 좜λ ₯ν•˜λŠ” 방법에 λŒ€ν•΄ μ„€λͺ…ν•©λ‹ˆλ‹€.


예제

SELECT GETDATE() AS CurrentDateTime;

μ„€λͺ…

μœ„μ˜ μ˜ˆμ œλŠ” SELECT 문을 μ‚¬μš©ν•˜μ—¬ GETDATE() ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜μ—¬ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ κ°€μ Έμ˜€λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€. AS ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ 결과의 μ—΄ 이름을 CurrentDateTime으둜 μ§€μ •ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

μ‹€ν–‰ κ²°κ³Ό

μœ„μ˜ 예제λ₯Ό μ‹€ν–‰ν•œ κ²°κ³ΌλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

CurrentDateTime
--------------------
2022-07-20 15:30:45

μœ„μ˜ κ²°κ³Όμ—μ„œλŠ” CurrentDateTime 열에 2022λ…„ 7μ›” 20일 μ˜€ν›„ 3μ‹œ 30λΆ„ 45μ΄ˆμ™€ 같은 ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ΄ ν‘œμ‹œλ©λ‹ˆλ‹€.


GETDATE ν•¨μˆ˜λŠ” ν˜„μž¬ μ‹œμŠ€ν…œμ˜ λ‚ μ§œμ™€ μ‹œκ°„μ„ κ°„νŽΈν•˜κ²Œ κ°€μ Έμ˜¬ 수 μžˆλŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. μœ„μ˜ μ˜ˆμ œμ—μ„œλŠ” GETDATE ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ 가져와 CurrentDateTimeμ΄λΌλŠ” μ—΄λ‘œ 좜λ ₯ν•˜μ˜€μŠ΅λ‹ˆλ‹€. 이λ₯Ό ν™œμš©ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€ μž‘μ—…μ— ν•„μš”ν•œ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ μ μ ˆν•˜κ²Œ ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

3. λŒ€μ£Όμ œ: DATEADD ν•¨μˆ˜ μ‚¬μš©λ²•κ³Ό 예제

DATEADD ν•¨μˆ˜λŠ” SQL Serverμ—μ„œ λ‚ μ§œμ— λŒ€ν•œ 연산을 μˆ˜ν–‰ν•  λ•Œ μ‚¬μš©λ˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. 이 ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‚ μ§œμ— λŒ€ν•œ λ§μ…ˆ λ˜λŠ” λΊ„μ…ˆ 연산을 μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이번 μ„Ήμ…˜μ—μ„œλŠ” DATEADD ν•¨μˆ˜μ˜ μ‚¬μš©λ²•κ³Ό μ˜ˆμ œμ— λŒ€ν•΄ μžμ„Ένžˆ μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€.


3.1. DATEADD ν•¨μˆ˜μ˜ μ‚¬μš©λ²•

DATEADD ν•¨μˆ˜λŠ” λ‹€μŒκ³Ό 같은 ꡬ문으둜 μ‚¬μš©λ©λ‹ˆλ‹€:

DATEADD(datepart, number, date)

μœ„μ˜ κ΅¬λ¬Έμ—μ„œ 각 λ§€κ°œλ³€μˆ˜λŠ” λ‹€μŒκ³Ό 같은 의미λ₯Ό κ°–μŠ΅λ‹ˆλ‹€:

  • datepart: λ‚ μ§œ 연산에 μ‚¬μš©ν•  λ‹¨μœ„λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ 년도λ₯Ό λ”ν•˜κ±°λ‚˜ λΉΌλ €λ©΄ 'year', 월을 λ”ν•˜κ±°λ‚˜ λΉΌλ €λ©΄ 'month', 일을 λ”ν•˜κ±°λ‚˜ λΉΌλ €λ©΄ 'day'와 같은 λ‹¨μœ„λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.
  • number: λ‚ μ§œμ— λ”ν•˜κ±°λ‚˜ λΊ„ 숫자λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€. μ–‘μˆ˜λ₯Ό μ§€μ •ν•˜λ©΄ ν•΄λ‹Ή 숫자만큼 λ‚ μ§œλ₯Ό λ”ν•˜κ³ , 음수λ₯Ό μ§€μ •ν•˜λ©΄ ν•΄λ‹Ή 숫자만큼 λ‚ μ§œλ₯Ό λΊ„ 수 μžˆμŠ΅λ‹ˆλ‹€.
  • date: λ‚ μ§œλ₯Ό λ‚˜νƒ€λ‚΄λŠ” 값을 μ§€μ •ν•©λ‹ˆλ‹€. 연산을 μˆ˜ν–‰ν•  λŒ€μƒ λ‚ μ§œλ₯Ό μ§€μ •ν•©λ‹ˆλ‹€.

3.2. DATEADD ν•¨μˆ˜μ˜ 예제

μ•„λž˜ μ˜ˆμ œμ—μ„œλŠ” DATEADD ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‚ μ§œμ— 연산을 μˆ˜ν–‰ν•˜λŠ” 방법에 λŒ€ν•΄ λ³΄μ—¬μ€λ‹ˆλ‹€.

SELECT DATEADD(year, 1, '2022-07-20') AS NextYearDate;

μœ„μ˜ μ˜ˆμ œμ—μ„œλŠ” '2022-07-20' λ‚ μ§œμ— 1년을 λ”ν•˜μ—¬ λ‹€μŒ ν•΄μ˜ λ‚ μ§œλ₯Ό κ³„μ‚°ν•©λ‹ˆλ‹€. κ²°κ³ΌλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

NextYearDate
--------------------
2023-07-20

DATEADD ν•¨μˆ˜λŠ” SQL Serverμ—μ„œ λ‚ μ§œμ— λŒ€ν•œ μ‚°μˆ  연산을 μˆ˜ν–‰ν•˜λŠ” 데 μœ μš©ν•œ ν•¨μˆ˜μž…λ‹ˆλ‹€. 이 ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λ©΄ λ‚ μ§œμ— μΌμ •ν•œ 값을 λ”ν•˜κ±°λ‚˜ λΉΌλŠ” λ“±μ˜ 연산을 μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μœ„μ˜ μ˜ˆμ œμ—μ„œλŠ” DATEADD ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‚ μ§œμ— 1년을 λ”ν•˜λŠ” 연산을 μˆ˜ν–‰ν–ˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό ν™œμš©ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€ μž‘μ—…μ— ν•„μš”ν•œ λ‚ μ§œ 연산을 μ μ ˆν•˜κ²Œ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

- DATEADD ν•¨μˆ˜μ˜ μ—­ν• κ³Ό 의미

DATEADD ν•¨μˆ˜λŠ” SQL Serverμ—μ„œ μ‚¬μš©λ˜λŠ” λ‚ μ§œ 및 μ‹œκ°„ ν•¨μˆ˜ 쀑 ν•˜λ‚˜λ‘œμ„œ, 주어진 λ‚ μ§œμ— λŒ€ν•΄ λ§μ…ˆ λ˜λŠ” λΊ„μ…ˆ 연산을 μˆ˜ν–‰ν•˜μ—¬ μƒˆλ‘œμš΄ λ‚ μ§œλ₯Ό κ³„μ‚°ν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 λ‚ μ§œμ— λŒ€ν•œ λ‹€μ–‘ν•œ 연산을 κ°„νŽΈν•˜κ²Œ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

DATEADD ν•¨μˆ˜λŠ” 주둜 λ‹€μŒκ³Ό 같은 역할을 μˆ˜ν–‰ν•©λ‹ˆλ‹€:

  • λ‚ μ§œ 증감: DATEADD ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‚ μ§œμ— μΌμ •ν•œ 값을 λ”ν•˜κ±°λ‚˜ λΊ„ 수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 일주일 ν›„μ˜ λ‚ μ§œλ₯Ό κ³„μ‚°ν•˜κ±°λ‚˜ ν•œ 달 μ „μ˜ λ‚ μ§œλ₯Ό κ³„μ‚°ν•˜λŠ” λ“±μ˜ μž‘μ—…μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.

  • λ‚ μ§œ λ‹¨μœ„ λ³€ν™˜: DATEADD ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‚ μ§œλ₯Ό λ‹€λ₯Έ λ‹¨μœ„λ‘œ λ³€ν™˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 일 λ‹¨μœ„λ‘œ ν‘œμ‹œλœ λ‚ μ§œλ₯Ό μ›” λ‹¨μœ„λ‘œ λ³€ν™˜ν•˜κ±°λ‚˜ λΆ„ λ‹¨μœ„λ‘œ ν‘œμ‹œλœ μ‹œκ°„μ„ 초 λ‹¨μœ„λ‘œ λ³€ν™˜ν•˜λŠ” λ“±μ˜ μž‘μ—…μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.

  • λ‚ μ§œ 비ꡐ: DATEADD ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‚ μ§œ 비ꡐλ₯Ό μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, νŠΉμ • λ‚ μ§œμ™€ ν˜„μž¬ λ‚ μ§œλ₯Ό λΉ„κ΅ν•˜μ—¬ κ²½κ³Όν•œ λ‚ μ§œ 수λ₯Ό κ³„μ‚°ν•˜κ±°λ‚˜, νŠΉμ • λ‚ μ§œμ™€ λ‹€λ₯Έ λ‚ μ§œ μ‚¬μ΄μ˜ 일수λ₯Ό κ³„μ‚°ν•˜λŠ” λ“±μ˜ μž‘μ—…μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.

DATEADD ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‹€μ–‘ν•œ λ‚ μ§œ 연산을 μˆ˜ν–‰ν•  수 있으며, 이λ₯Ό ν™œμš©ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€ μž‘μ—…μ— ν•„μš”ν•œ λ‚ μ§œ κ΄€λ ¨ μž‘μ—…μ„ 효율적으둜 μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

- DATEADD ν•¨μˆ˜μ˜ 문법

DATEADD ν•¨μˆ˜λŠ” λ‹€μŒκ³Ό 같은 ꡬ문을 κ°€μ§‘λ‹ˆλ‹€:

DATEADD(datepart, number, date)

각각의 λ§€κ°œλ³€μˆ˜λŠ” λ‹€μŒκ³Ό 같은 의미λ₯Ό 가지고 μžˆμŠ΅λ‹ˆλ‹€:

  • datepart: λ‚ μ§œ 연산에 μ‚¬μš©ν•  λ‹¨μœ„λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 'year'λŠ” 년도, 'month'λŠ” μ›”, 'day'λŠ” 일 λ“±μ˜ λ‹¨μœ„λ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • number: λ‚ μ§œμ— λ”ν•˜κ±°λ‚˜ λΊ„ 값을 μ§€μ •ν•©λ‹ˆλ‹€. μ–‘μˆ˜ 값을 μ§€μ •ν•˜λ©΄ ν•΄λ‹Ή 값을 λ‚ μ§œμ— λ”ν•˜κ³ , 음수 값을 μ§€μ •ν•˜λ©΄ ν•΄λ‹Ή 값을 λ‚ μ§œμ—μ„œ 빼게 λ©λ‹ˆλ‹€.
  • date: 연산을 μˆ˜ν–‰ν•  λŒ€μƒ λ‚ μ§œλ₯Ό μ§€μ •ν•©λ‹ˆλ‹€. 보톡 λ‚ μ§œλ₯Ό λ‚˜νƒ€λ‚΄λŠ” λ¬Έμžμ—΄μ΄λ‚˜ λ‚ μ§œ 데이터 νƒ€μž…μ˜ λ³€μˆ˜λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

DATEADD ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‚ μ§œμ— 연산을 μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄μ„œλŠ” μœ„μ˜ 문법을 따라야 ν•©λ‹ˆλ‹€. datepartμ—λŠ” λ‚ μ§œ 연산에 μ‚¬μš©ν•  λ‹¨μœ„λ₯Ό μ§€μ •ν•˜κ³ , numberμ—λŠ” ν•΄λ‹Ή λ‹¨μœ„μ— λŒ€ν•΄ λ”ν•˜κ±°λ‚˜ λΊ„ κ°’μœΌλ‘œ μ •μˆ˜ 값을 μ§€μ •ν•©λ‹ˆλ‹€. λ§ˆμ§€λ§‰μœΌλ‘œ, dateμ—λŠ” 연산을 μˆ˜ν–‰ν•  λŒ€μƒμ΄ λ˜λŠ” λ‚ μ§œ 값을 μ§€μ •ν•©λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄, λ‹€μŒμ€ DATEADD ν•¨μˆ˜μ˜ μ˜ˆμ œμž…λ‹ˆλ‹€:

SELECT DATEADD(year, 1, '2022-07-20') AS NextYearDate;

μœ„μ˜ μ˜ˆμ œλŠ” '2022-07-20' λ‚ μ§œμ— 1년을 λ”ν•˜μ—¬ μƒˆλ‘œμš΄ λ‚ μ§œλ₯Ό κ³„μ‚°ν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€. κ²°κ³ΌλŠ” '2023-07-20'이 λ©λ‹ˆλ‹€.

DATEADD ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‚ μ§œμ— λŒ€ν•œ 연산을 μˆ˜ν–‰ν•  λ•ŒλŠ” 문법을 μ •ν™•νžˆ μ§€μΌœμ•Ό ν•˜λ©°, μ μ ˆν•œ datepart와 number 값을 μ§€μ •ν•˜μ—¬ μ›ν•˜λŠ” 연산을 μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

- DATEADD ν•¨μˆ˜ 예제: νŠΉμ • λ‚ μ§œμ— 일정 기간을 λ”ν•˜κ±°λ‚˜ λΉΌκΈ°

DATEADD ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ νŠΉμ • λ‚ μ§œμ— 일정 기간을 λ”ν•˜κ±°λ‚˜ λΉΌλŠ” 예제λ₯Ό μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

1. 일주일 ν›„μ˜ λ‚ μ§œ κ³„μ‚°ν•˜κΈ°

DECLARE @StartDate DATE = '2022-07-20';

SELECT DATEADD(week, 1, @StartDate) AS OneWeekLater;

μœ„μ˜ μ˜ˆμ œλŠ” '2022-07-20' λ‚ μ§œμ— 일주일(7일)을 λ”ν•˜μ—¬ μƒˆλ‘œμš΄ λ‚ μ§œλ₯Ό κ³„μ‚°ν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€. DATEADD(week, 1, @StartDate)λ₯Ό μ‚¬μš©ν•˜μ—¬ μ£Ό λ‹¨μœ„λ‘œ 1을 λ”ν•œ κ²°κ³Όλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. κ²°κ³ΌλŠ” '2022-07-27'이 λ©λ‹ˆλ‹€.

2. ν•œ 달 μ „μ˜ λ‚ μ§œ κ³„μ‚°ν•˜κΈ°

DECLARE @StartDate DATE = '2022-07-20';

SELECT DATEADD(month, -1, @StartDate) AS OneMonthEarlier;

μœ„μ˜ μ˜ˆμ œλŠ” '2022-07-20' λ‚ μ§œμ—μ„œ ν•œ 달(30일)을 λΉΌμ–΄ μƒˆλ‘œμš΄ λ‚ μ§œλ₯Ό κ³„μ‚°ν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€. DATEADD(month, -1, @StartDate)λ₯Ό μ‚¬μš©ν•˜μ—¬ μ›” λ‹¨μœ„λ‘œ -1을 λ”ν•œ κ²°κ³Όλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. κ²°κ³ΌλŠ” '2022-06-20'이 λ©λ‹ˆλ‹€.

3. νŠΉμ • λ‚ μ§œμ™€ ν˜„μž¬ λ‚ μ§œ μ‚¬μ΄μ˜ 일 수 κ³„μ‚°ν•˜κΈ°

DECLARE @SpecificDate DATE = '2022-07-20';

SELECT DATEDIFF(day, @SpecificDate, GETDATE()) AS DaysElapsed;

μœ„μ˜ μ˜ˆμ œλŠ” '2022-07-20' λ‚ μ§œμ™€ ν˜„μž¬ λ‚ μ§œ μ‚¬μ΄μ˜ κ²½κ³Όν•œ 일수λ₯Ό κ³„μ‚°ν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€. DATEDIFF(day, @SpecificDate, GETDATE())λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‚ μ§œ 차이λ₯Ό κ³„μ‚°ν•˜κ³ , 일(day) λ‹¨μœ„λ‘œ λ°˜ν™˜ν•©λ‹ˆλ‹€. GETDATE() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ ν˜„μž¬ λ‚ μ§œλ₯Ό κ°€μ Έμ˜΅λ‹ˆλ‹€. κ²°κ³ΌλŠ” ν˜„μž¬ λ‚ μ§œμ™€ '2022-07-20' 사이에 κ²½κ³Όν•œ 일 μˆ˜κ°€ λ©λ‹ˆλ‹€.

μœ„μ˜ 예제λ₯Ό μ°Έκ³ ν•˜μ—¬ DATEADD ν•¨μˆ˜λ₯Ό ν™œμš©ν•˜μ—¬ νŠΉμ • λ‚ μ§œμ— 일정 기간을 λ”ν•˜κ±°λ‚˜ λΉΌλŠ” λ‹€μ–‘ν•œ 연산을 μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ‚ μ§œμ™€ μ‹œκ°„μ— κ΄€λ ¨λœ μž‘μ—…μ„ μˆ˜ν–‰ν•  λ•ŒλŠ” DATEADD ν•¨μˆ˜λ₯Ό 적절히 ν™œμš©ν•˜μ—¬ μ›ν•˜λŠ” κ²°κ³Όλ₯Ό 얻을 수 μžˆμŠ΅λ‹ˆλ‹€.

DATEADD ν•¨μˆ˜ 예제: νŠΉμ • λ‚ μ§œμ— 일정 기간을 λ”ν•˜κ±°λ‚˜ λΉΌκΈ°

DATEADD ν•¨μˆ˜λŠ” SQL Serverμ—μ„œ λ‚ μ§œμ— λŒ€ν•œ 연산을 μˆ˜ν–‰ν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” μœ μš©ν•œ ν•¨μˆ˜μž…λ‹ˆλ‹€. 이 ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λ©΄ νŠΉμ • λ‚ μ§œμ— 일정 기간을 λ”ν•˜κ±°λ‚˜ λΊ„ 수 μžˆμŠ΅λ‹ˆλ‹€. 이제 μ‹€μ œ 예제λ₯Ό 톡해 DATEADD ν•¨μˆ˜μ˜ μ‚¬μš©λ²•μ„ μžμ„Ένžˆ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

1. 일주일 ν›„μ˜ λ‚ μ§œ κ³„μ‚°ν•˜κΈ°

λ‹€μŒ μ˜ˆμ œλŠ” '2022-07-20' λ‚ μ§œμ— 일주일(7일)을 λ”ν•˜μ—¬ μƒˆλ‘œμš΄ λ‚ μ§œλ₯Ό κ³„μ‚°ν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€.

DECLARE @StartDate DATE = '2022-07-20';

SELECT DATEADD(week, 1, @StartDate) AS OneWeekLater;

DATEADD ν•¨μˆ˜μ˜ 첫 번째 인수둜 'week'을 μ‚¬μš©ν•˜μ—¬ μ£Ό λ‹¨μœ„λ‘œ 1을 λ”ν•œ κ²°κ³Όλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. κ²°κ³ΌλŠ” '2022-07-27'이 λ©λ‹ˆλ‹€.

2. ν•œ 달 μ „μ˜ λ‚ μ§œ κ³„μ‚°ν•˜κΈ°

λ‹€μŒ μ˜ˆμ œλŠ” '2022-07-20' λ‚ μ§œμ—μ„œ ν•œ 달(30일)을 λΉΌμ–΄ μƒˆλ‘œμš΄ λ‚ μ§œλ₯Ό κ³„μ‚°ν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€.

DECLARE @StartDate DATE = '2022-07-20';

SELECT DATEADD(month, -1, @StartDate) AS OneMonthEarlier;

DATEADD ν•¨μˆ˜μ˜ 첫 번째 인수둜 'month'λ₯Ό μ‚¬μš©ν•˜μ—¬ μ›” λ‹¨μœ„λ‘œ -1을 λ”ν•œ κ²°κ³Όλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. κ²°κ³ΌλŠ” '2022-06-20'이 λ©λ‹ˆλ‹€.

3. νŠΉμ • λ‚ μ§œμ™€ ν˜„μž¬ λ‚ μ§œ μ‚¬μ΄μ˜ 일 수 κ³„μ‚°ν•˜κΈ°

λ‹€μŒ μ˜ˆμ œλŠ” '2022-07-20' λ‚ μ§œμ™€ ν˜„μž¬ λ‚ μ§œ μ‚¬μ΄μ˜ κ²½κ³Όν•œ 일수λ₯Ό κ³„μ‚°ν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€.

DECLARE @SpecificDate DATE = '2022-07-20';

SELECT DATEDIFF(day, @SpecificDate, GETDATE()) AS DaysElapsed;

DATEADD ν•¨μˆ˜μ˜ 첫 번째 인수둜 'day'λ₯Ό μ‚¬μš©ν•˜μ—¬ '2022-07-20'κ³Ό ν˜„μž¬ λ‚ μ§œ μ‚¬μ΄μ˜ λ‚ μ§œ 차이λ₯Ό κ³„μ‚°ν•©λ‹ˆλ‹€. GETDATE() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ ν˜„μž¬ λ‚ μ§œλ₯Ό κ°€μ Έμ˜΅λ‹ˆλ‹€. κ²°κ³ΌλŠ” ν˜„μž¬ λ‚ μ§œμ™€ '2022-07-20' 사이에 κ²½κ³Όν•œ 일 μˆ˜κ°€ λ©λ‹ˆλ‹€.

DATEADD ν•¨μˆ˜λŠ” 항상 λ§€κ°œλ³€μˆ˜μ˜ μˆœμ„œλŒ€λ‘œ 초기 λ‚ μ§œλ₯Ό 지정해야 ν•©λ‹ˆλ‹€. λ˜ν•œ, μ§€μ›λ˜λŠ” datepart 및 λ§€κ°œλ³€μˆ˜μ— λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ 곡식 Microsoft λ¬Έμ„œλ₯Ό μ°Έμ‘°ν•˜μ‹œκΈ° λ°”λžλ‹ˆλ‹€[^dateadd].

μœ„μ˜ 예제λ₯Ό μ°Έκ³ ν•˜μ—¬ DATEADD ν•¨μˆ˜λ₯Ό ν™œμš©ν•˜μ—¬ νŠΉμ • λ‚ μ§œμ— 일정 기간을 λ”ν•˜κ±°λ‚˜ λΉΌλŠ” λ‹€μ–‘ν•œ 연산을 μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ‚ μ§œμ™€ μ‹œκ°„μ— κ΄€λ ¨λœ μž‘μ—…μ„ μˆ˜ν–‰ν•  λ•ŒλŠ” DATEADD ν•¨μˆ˜λ₯Ό 적절히 ν™œμš©ν•˜μ—¬ μ›ν•˜λŠ” κ²°κ³Όλ₯Ό 얻을 수 μžˆμŠ΅λ‹ˆλ‹€.

4. λŒ€μ£Όμ œ: DATEPART ν•¨μˆ˜ μ‚¬μš©λ²•κ³Ό 예제

DATEPART ν•¨μˆ˜λŠ” SQL Serverμ—μ„œ λ‚ μ§œ λ˜λŠ” μ‹œκ°„μ˜ νŠΉμ • 뢀뢄을 μΆ”μΆœν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. 이 ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λ©΄ λ‚ μ§œμ™€ μ‹œκ°„ 값을 ꡬ성 μš”μ†Œλ‘œ λΆ„λ¦¬ν•˜μ—¬ μ›ν•˜λŠ” 정보λ₯Ό κ°€μ Έμ˜¬ 수 μžˆμŠ΅λ‹ˆλ‹€. 이제 μ‹€μ œ 예제λ₯Ό 톡해 DATEPART ν•¨μˆ˜μ˜ μ‚¬μš©λ²•κ³Ό ν™œμš© 방법을 μžμ„Ένžˆ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

1. 연도 μΆ”μΆœν•˜κΈ°

λ‹€μŒ μ˜ˆμ œλŠ” '2022-07-20' λ‚ μ§œμ—μ„œ 연도λ₯Ό μΆ”μΆœν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€.

DECLARE @DateToExtract DATE = '2022-07-20';

SELECT DATEPART(year, @DateToExtract) AS ExtractedYear;

DATEPART ν•¨μˆ˜μ˜ 첫 번째 인수둜 'year'을 μ‚¬μš©ν•˜μ—¬ 연도λ₯Ό μΆ”μΆœν•©λ‹ˆλ‹€. κ²°κ³ΌλŠ” '2022'κ°€ λ©λ‹ˆλ‹€.

2. μ›” μΆ”μΆœν•˜κΈ°

λ‹€μŒ μ˜ˆμ œλŠ” '2022-07-20' λ‚ μ§œμ—μ„œ 월을 μΆ”μΆœν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€.

DECLARE @DateToExtract DATE = '2022-07-20';

SELECT DATEPART(month, @DateToExtract) AS ExtractedMonth;

DATEPART ν•¨μˆ˜μ˜ 첫 번째 인수둜 'month'λ₯Ό μ‚¬μš©ν•˜μ—¬ 월을 μΆ”μΆœν•©λ‹ˆλ‹€. κ²°κ³ΌλŠ” '7'이 λ©λ‹ˆλ‹€.

3. 일 μΆ”μΆœν•˜κΈ°

λ‹€μŒ μ˜ˆμ œλŠ” '2022-07-20' λ‚ μ§œμ—μ„œ 일을 μΆ”μΆœν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€.

DECLARE @DateToExtract DATE = '2022-07-20';

SELECT DATEPART(day, @DateToExtract) AS ExtractedDay;

DATEPART ν•¨μˆ˜μ˜ 첫 번째 인수둜 'day'λ₯Ό μ‚¬μš©ν•˜μ—¬ 일을 μΆ”μΆœν•©λ‹ˆλ‹€. κ²°κ³ΌλŠ” '20'이 λ©λ‹ˆλ‹€.

4. μš”μΌ μΆ”μΆœν•˜κΈ°

λ‹€μŒ μ˜ˆμ œλŠ” '2022-07-20' λ‚ μ§œμ—μ„œ μš”μΌμ„ μΆ”μΆœν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€.

DECLARE @DateToExtract DATE = '2022-07-20';

SELECT DATEPART(weekday, @DateToExtract) AS ExtractedWeekday;

DATEPART ν•¨μˆ˜μ˜ 첫 번째 인수둜 'weekday'λ₯Ό μ‚¬μš©ν•˜μ—¬ μš”μΌμ„ μΆ”μΆœν•©λ‹ˆλ‹€. κ²°κ³ΌλŠ” '4'κ°€ λ©λ‹ˆλ‹€. (μΌμš”μΌμ΄ 1, ν† μš”μΌμ΄ 7)

DATEPART ν•¨μˆ˜λŠ” λ‹€μ–‘ν•œ 인수λ₯Ό 톡해 λ‚ μ§œ 및 μ‹œκ°„ κ°’μ—μ„œ ν•„μš”ν•œ ꡬ성 μš”μ†Œλ₯Ό μΆ”μΆœν•˜λŠ” 데 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ§€μ›λ˜λŠ” datepart μΈμˆ˜μ— λŒ€ν•œ μžμ„Έν•œ λ‚΄μš© 및 μ˜ˆμ œλŠ” 곡식 Microsoft λ¬Έμ„œλ₯Ό μ°Έμ‘°ν•˜μ‹œκΈ° λ°”λžλ‹ˆλ‹€[^datepart].

μœ„μ˜ 예제λ₯Ό μ°Έκ³ ν•˜μ—¬ DATEPART ν•¨μˆ˜λ₯Ό 적절히 ν™œμš©ν•˜μ—¬ λ‚ μ§œ 및 μ‹œκ°„ κ°’μ—μ„œ μ›ν•˜λŠ” 정보λ₯Ό μΆ”μΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 데이터 λΆ„μ„μ΄λ‚˜ 쑰건 검색에 도움이 λ˜λŠ” 정보λ₯Ό μΆ”μΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€.

- DATEPART ν•¨μˆ˜μ˜ μ—­ν• κ³Ό 의미

DATEPART ν•¨μˆ˜λŠ” SQL Serverμ—μ„œ λ‚ μ§œ λ˜λŠ” μ‹œκ°„ κ°’μ—μ„œ νŠΉμ •ν•œ ꡬ성 μš”μ†Œλ₯Ό μΆ”μΆœν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€. 이 ν•¨μˆ˜λŠ” λ‚ μ§œ λ˜λŠ” μ‹œκ°„ κ°’μ—μ„œ 년도, μ›”, 일, μš”μΌ, μ‹œκ°„, λΆ„, 초 λ“± νŠΉμ •ν•œ 뢀뢄을 μΆ”μΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€. DATEPART ν•¨μˆ˜λŠ” λ‹€μŒκ³Ό 같은 ν˜•μ‹μœΌλ‘œ μ‚¬μš©λ©λ‹ˆλ‹€.

DATEPART(datepart, date)
  • datepart: λ‚ μ§œ λ˜λŠ” μ‹œκ°„ 값을 μΆ”μΆœν•˜κ³ μž ν•˜λŠ” ꡬ성 μš”μ†Œλ₯Ό μ§€μ •ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€λ©΄ 'year', 'month', 'day', 'weekday', 'hour', 'minute', 'second' 등이 μžˆμŠ΅λ‹ˆλ‹€.
  • date: ꡬ성 μš”μ†Œλ₯Ό μΆ”μΆœν•  λŒ€μƒμ΄ λ˜λŠ” λ‚ μ§œ λ˜λŠ” μ‹œκ°„ 값을 μ§€μ •ν•©λ‹ˆλ‹€.

DATEPART ν•¨μˆ˜μ˜ κ²°κ³ΌλŠ” μ§€μ •ν•œ ꡬ성 μš”μ†Œμ˜ 값이 λ©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, '2022-07-20' λ‚ μ§œμ—μ„œ YEAR ꡬ성 μš”μ†Œλ₯Ό μΆ”μΆœν•˜λ©΄ 2022κ°€ 되며, MONTH ꡬ성 μš”μ†Œλ₯Ό μΆ”μΆœν•˜λ©΄ 7이 λ©λ‹ˆλ‹€.

DATEPART ν•¨μˆ˜λŠ” λ‚ μ§œμ™€ μ‹œκ°„ 값을 λΆ„μ„ν•˜κ³ , ν•„μš”ν•œ 정보λ₯Ό μΆ”μΆœν•  수 μžˆλ„λ‘ λ„μ™€μ€λ‹ˆλ‹€. 이λ₯Όν…Œλ©΄, λ‚ μ§œ κ°’ μ€‘μ—μ„œ νŠΉμ •ν•œ μ›”μ˜ 데이터λ₯Ό κ²€μƒ‰ν•˜λ €κ³  ν•  λ•Œ, MONTH ꡬ성 μš”μ†Œλ₯Ό μΆ”μΆœν•˜μ—¬ 검색 쑰건으둜 ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ, μš”μΌ 정보λ₯Ό μΆ”μΆœν•˜μ—¬ νŠΉμ •ν•œ μš”μΌμ— ν•΄λ‹Ήν•˜λŠ” 데이터λ₯Ό ν•„ν„°λ§ν•˜λŠ” λ“± λ‹€μ–‘ν•œ ν™œμš© 방법이 μžˆμŠ΅λ‹ˆλ‹€.

DATEPART ν•¨μˆ˜λŠ” λ‹€μ–‘ν•œ ꡬ성 μš”μ†Œλ₯Ό μ§€μ›ν•˜λ©°, μ§€μ›λ˜λŠ” datepart μΈμˆ˜μ— λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©κ³Ό μ˜ˆμ œλŠ” 곡식 Microsoft λ¬Έμ„œλ₯Ό μ°Έμ‘°ν•˜μ‹œκΈ° λ°”λžλ‹ˆλ‹€[^datepart]. 이λ₯Ό 톡해 μ›ν•˜λŠ” ꡬ성 μš”μ†Œλ₯Ό μΆ”μΆœν•˜μ—¬ 데이터 λΆ„μ„μ΄λ‚˜ 필터링에 ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

- DATEPART ν•¨μˆ˜μ˜ 문법

DATEPART ν•¨μˆ˜λŠ” SQL Serverμ—μ„œ λ‚ μ§œ λ˜λŠ” μ‹œκ°„ κ°’μ—μ„œ νŠΉμ •ν•œ ꡬ성 μš”μ†Œλ₯Ό μΆ”μΆœν•˜λŠ”λ° μ‚¬μš©λ˜λŠ” ν•¨μˆ˜μ΄λ©°, λ‹€μŒκ³Ό 같은 문법을 κ°–μŠ΅λ‹ˆλ‹€.

DATEPART(datepart, date)
  • datepart: μΆ”μΆœν•˜κ³ μž ν•˜λŠ” ꡬ성 μš”μ†Œλ₯Ό λ‚˜νƒ€λ‚΄λŠ” λ¬Έμžμ—΄μž…λ‹ˆλ‹€. λ‹€μŒκ³Ό 같은 ꡬ성 μš”μ†Œλ₯Ό μ§€μ›ν•©λ‹ˆλ‹€.
    • year: 연도
    • quarter: λΆ„κΈ°
    • month: μ›”
    • dayofyear: ν•΄λ‹Ή μ—°λ„μ˜ 일 수
    • day: 일
    • weekday: μš”μΌ (1 = μΌμš”μΌ, 2 = μ›”μš”μΌ, ..., 7 = ν† μš”μΌ)
    • week: μ£Ό (ISO μ£Ό ν‘œμ€€μ— 따라 1μ›” 4일을 ν¬ν•¨ν•˜λŠ” μ£Όλ₯Ό 첫 번째 주둜 κ°„μ£Ό)
    • hour: μ‹œκ°„
    • minute: λΆ„
    • second: 초
    • millisecond: λ°€λ¦¬μ΄ˆ
    • microsecond: 마이크둜초
    • nanosecond: λ‚˜λ…Έμ΄ˆ
  • date: ꡬ성 μš”μ†Œλ₯Ό μΆ”μΆœν•  λŒ€μƒμΈ λ‚ μ§œ λ˜λŠ” μ‹œκ°„ κ°’μž…λ‹ˆλ‹€.

DATEPART ν•¨μˆ˜λŠ” 두 개의 λ§€κ°œλ³€μˆ˜λ₯Ό κ°–μŠ΅λ‹ˆλ‹€. 첫 번째 λ§€κ°œλ³€μˆ˜μΈ datepartλŠ” μΆ”μΆœν•˜κ³ μž ν•˜λŠ” ꡬ성 μš”μ†Œλ₯Ό μ§€μ •ν•˜λ©°, 두 번째 λ§€κ°œλ³€μˆ˜μΈ dateλŠ” ꡬ성 μš”μ†Œλ₯Ό μΆ”μΆœν•  λŒ€μƒμΈ λ‚ μ§œ λ˜λŠ” μ‹œκ°„ 값을 μ§€μ •ν•©λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄, '2022-07-20' λ‚ μ§œμ—μ„œ 연도λ₯Ό μΆ”μΆœν•˜λ €λ©΄ λ‹€μŒκ³Ό 같이 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

DECLARE @DateToExtract DATE = '2022-07-20';

SELECT DATEPART(year, @DateToExtract) AS ExtractedYear;

μœ„μ˜ μ˜ˆμ œμ—μ„œλŠ” year을 datepart둜 μ§€μ •ν•˜μ—¬ 연도λ₯Ό μΆ”μΆœν•˜κ³ , @DateToExtract λ³€μˆ˜λ₯Ό date둜 μ§€μ •ν•˜μ—¬ ꡬ성 μš”μ†Œλ₯Ό μΆ”μΆœν•©λ‹ˆλ‹€.

DATEPART ν•¨μˆ˜λŠ” λ‹€μ–‘ν•œ ꡬ성 μš”μ†Œλ₯Ό μ§€μ›ν•˜μ—¬ λ‚ μ§œ λ˜λŠ” μ‹œκ°„ κ°’μ—μ„œ ν•„μš”ν•œ 정보λ₯Ό μΆ”μΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€. μžμ„Έν•œ λ‚΄μš©κ³Ό 예제 μ½”λ“œμ— λŒ€ν•΄μ„œλŠ” 곡식 Microsoft λ¬Έμ„œλ₯Ό μ°Έμ‘°ν•˜μ‹œκΈ° λ°”λžλ‹ˆλ‹€[^datepart].

- DATEPART ν•¨μˆ˜ 예제: λ‚ μ§œμ—μ„œ νŠΉμ • λΆ€λΆ„λ§Œ μΆ”μΆœν•˜κΈ° (λ…„, μ›”, 일, μ‹œκ°„, λΆ„ λ“±)

DATEPART ν•¨μˆ˜λŠ” λ‚ μ§œ λ˜λŠ” μ‹œκ°„ 값을 λΆ„μ„ν•˜κ³ , ν•„μš”ν•œ 정보λ₯Ό μΆ”μΆœν•  수 μžˆλŠ” κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€. λ‹€μŒμ€ DATEPART ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‚ μ§œμ—μ„œ νŠΉμ •ν•œ 뢀뢄을 μΆ”μΆœν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€.

1. 년도 (Year) μΆ”μΆœν•˜κΈ°

DECLARE @DateToExtract DATE = '2022-07-20';

SELECT DATEPART(year, @DateToExtract) AS ExtractedYear;

μœ„μ˜ μ˜ˆμ œμ—μ„œλŠ” year을 datepart둜 μ§€μ •ν•˜μ—¬ λ‚ μ§œμ—μ„œ 년도λ₯Ό μΆ”μΆœν•©λ‹ˆλ‹€. @DateToExtract λ³€μˆ˜λŠ” μΆ”μΆœν•  λŒ€μƒμΈ λ‚ μ§œ κ°’μœΌλ‘œ μ„€μ •λ˜μ–΄ 있으며, DATEPART ν•¨μˆ˜μ˜ κ²°κ³ΌλŠ” ExtractedYearλΌλŠ” 별칭을 κ°€μ§€κ²Œ λ©λ‹ˆλ‹€.

2. μ›” (Month) μΆ”μΆœν•˜κΈ°

DECLARE @DateToExtract DATE = '2022-07-20';

SELECT DATEPART(month, @DateToExtract) AS ExtractedMonth;

μœ„μ˜ μ˜ˆμ œμ—μ„œλŠ” monthλ₯Ό datepart둜 μ§€μ •ν•˜μ—¬ λ‚ μ§œμ—μ„œ 월을 μΆ”μΆœν•©λ‹ˆλ‹€. @DateToExtract λ³€μˆ˜λŠ” μΆ”μΆœν•  λŒ€μƒμΈ λ‚ μ§œ κ°’μœΌλ‘œ μ„€μ •λ˜μ–΄ 있으며, DATEPART ν•¨μˆ˜μ˜ κ²°κ³ΌλŠ” ExtractedMonthλΌλŠ” 별칭을 κ°€μ§€κ²Œ λ©λ‹ˆλ‹€.

3. 일 (Day) μΆ”μΆœν•˜κΈ°

DECLARE @DateToExtract DATE = '2022-07-20';

SELECT DATEPART(day, @DateToExtract) AS ExtractedDay;

μœ„μ˜ μ˜ˆμ œμ—μ„œλŠ” dayλ₯Ό datepart둜 μ§€μ •ν•˜μ—¬ λ‚ μ§œμ—μ„œ 일을 μΆ”μΆœν•©λ‹ˆλ‹€. @DateToExtract λ³€μˆ˜λŠ” μΆ”μΆœν•  λŒ€μƒμΈ λ‚ μ§œ κ°’μœΌλ‘œ μ„€μ •λ˜μ–΄ 있으며, DATEPART ν•¨μˆ˜μ˜ κ²°κ³ΌλŠ” ExtractedDayλΌλŠ” 별칭을 κ°€μ§€κ²Œ λ©λ‹ˆλ‹€.

4. μ‹œκ°„ (Hour) μΆ”μΆœν•˜κΈ°

DECLARE @DateTimeToExtract DATETIME = '2022-07-20 15:30:45';

SELECT DATEPART(hour, @DateTimeToExtract) AS ExtractedHour;

μœ„μ˜ μ˜ˆμ œμ—μ„œλŠ” hourλ₯Ό datepart둜 μ§€μ •ν•˜μ—¬ λ‚ μ§œμ™€ μ‹œκ°„μ—μ„œ μ‹œκ°„μ„ μΆ”μΆœν•©λ‹ˆλ‹€. @DateTimeToExtract λ³€μˆ˜λŠ” μΆ”μΆœν•  λŒ€μƒμΈ λ‚ μ§œμ™€ μ‹œκ°„ κ°’μœΌλ‘œ μ„€μ •λ˜μ–΄ 있으며, DATEPART ν•¨μˆ˜μ˜ κ²°κ³ΌλŠ” ExtractedHourλΌλŠ” 별칭을 κ°€μ§€κ²Œ λ©λ‹ˆλ‹€.

5. λΆ„ (Minute) μΆ”μΆœν•˜κΈ°

DECLARE @DateTimeToExtract DATETIME = '2022-07-20 15:30:45';

SELECT DATEPART(minute, @DateTimeToExtract) AS ExtractedMinute;

μœ„μ˜ μ˜ˆμ œμ—μ„œλŠ” minuteλ₯Ό datepart둜 μ§€μ •ν•˜μ—¬ λ‚ μ§œμ™€ μ‹œκ°„μ—μ„œ 뢄을 μΆ”μΆœν•©λ‹ˆλ‹€. @DateTimeToExtract λ³€μˆ˜λŠ” μΆ”μΆœν•  λŒ€μƒμΈ λ‚ μ§œμ™€ μ‹œκ°„ κ°’μœΌλ‘œ μ„€μ •λ˜μ–΄ 있으며, DATEPART ν•¨μˆ˜μ˜ κ²°κ³ΌλŠ” ExtractedMinuteλΌλŠ” 별칭을 κ°€μ§€κ²Œ λ©λ‹ˆλ‹€.

μœ„μ˜ μ˜ˆμ œλ“€μ€ DATEPART ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 주어진 λ‚ μ§œ λ˜λŠ” μ‹œκ°„ 값을 λΆ„μ„ν•˜κ³ , ν•„μš”ν•œ 정보λ₯Ό μΆ”μΆœν•˜λŠ” 방법을 λ³΄μ—¬μ€λ‹ˆλ‹€. DATEPART ν•¨μˆ˜λ₯Ό 적절히 ν™œμš©ν•˜λ©΄ 데이터 λΆ„μ„μ΄λ‚˜ 필터링에 μœ μš©ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

DATEPART ν•¨μˆ˜ 예제: λ‚ μ§œμ—μ„œ νŠΉμ • λΆ€λΆ„λ§Œ μΆ”μΆœν•˜κΈ° (λ…„, μ›”, 일, μ‹œκ°„, λΆ„ λ“±)

DATEPART ν•¨μˆ˜λŠ” λ‚ μ§œμ™€ μ‹œκ°„ κ°’μ—μ„œ νŠΉμ •ν•œ 뢀뢄을 μΆ”μΆœν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. 이 ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‚ μ§œμ™€ μ‹œκ°„ 값을 λΆ„μ„ν•˜κ³  ν•„μš”ν•œ 정보λ₯Ό μΆ”μΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ‹€μŒμ€ DATEPART ν•¨μˆ˜λ₯Ό ν™œμš©ν•œ μ—¬λŸ¬ μ˜ˆμ œμž…λ‹ˆλ‹€.

1. 년도 (Year) μΆ”μΆœν•˜κΈ°

DECLARE @DateToExtract DATE = '2022-07-20';

SELECT DATEPART(year, @DateToExtract) AS ExtractedYear;

year을 datepart둜 μ§€μ •ν•˜μ—¬ λ‚ μ§œμ—μ„œ 년도λ₯Ό μΆ”μΆœν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€. @DateToExtract λ³€μˆ˜λŠ” μΆ”μΆœν•  λŒ€μƒμΈ λ‚ μ§œ 값을 μ €μž₯ν•˜κ³  있으며, DATEPART ν•¨μˆ˜μ˜ κ²°κ³ΌλŠ” ExtractedYearμ΄λΌλŠ” λ³„μΉ­μœΌλ‘œ λ°˜ν™˜λ©λ‹ˆλ‹€.

2. μ›” (Month) μΆ”μΆœν•˜κΈ°

DECLARE @DateToExtract DATE = '2022-07-20';

SELECT DATEPART(month, @DateToExtract) AS ExtractedMonth;

monthλ₯Ό datepart둜 μ§€μ •ν•˜μ—¬ λ‚ μ§œμ—μ„œ 월을 μΆ”μΆœν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€. @DateToExtract λ³€μˆ˜μ—λŠ” μΆ”μΆœν•  λŒ€μƒμΈ λ‚ μ§œ 값이 μ €μž₯λ˜μ–΄ 있으며, DATEPART ν•¨μˆ˜μ˜ κ²°κ³ΌλŠ” ExtractedMonthλΌλŠ” λ³„μΉ­μœΌλ‘œ λ°˜ν™˜λ©λ‹ˆλ‹€.

3. 일 (Day) μΆ”μΆœν•˜κΈ°

DECLARE @DateToExtract DATE = '2022-07-20';

SELECT DATEPART(day, @DateToExtract) AS ExtractedDay;

dayλ₯Ό datepart둜 μ§€μ •ν•˜μ—¬ λ‚ μ§œμ—μ„œ 일을 μΆ”μΆœν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€. @DateToExtract λ³€μˆ˜μ—λŠ” μΆ”μΆœν•  λŒ€μƒμΈ λ‚ μ§œ 값이 μ €μž₯λ˜μ–΄ 있으며, DATEPART ν•¨μˆ˜μ˜ κ²°κ³ΌλŠ” ExtractedDayλΌλŠ” λ³„μΉ­μœΌλ‘œ λ°˜ν™˜λ©λ‹ˆλ‹€.

4. μ‹œκ°„ (Hour) μΆ”μΆœν•˜κΈ°

DECLARE @DateTimeToExtract DATETIME = '2022-07-20 15:30:45';

SELECT DATEPART(hour, @DateTimeToExtract) AS ExtractedHour;

hourλ₯Ό datepart둜 μ§€μ •ν•˜μ—¬ λ‚ μ§œμ™€ μ‹œκ°„μ—μ„œ μ‹œκ°„μ„ μΆ”μΆœν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€. @DateTimeToExtract λ³€μˆ˜μ—λŠ” μΆ”μΆœν•  λŒ€μƒμΈ λ‚ μ§œμ™€ μ‹œκ°„ 값이 μ €μž₯λ˜μ–΄ 있으며, DATEPART ν•¨μˆ˜μ˜ κ²°κ³ΌλŠ” ExtractedHourλΌλŠ” λ³„μΉ­μœΌλ‘œ λ°˜ν™˜λ©λ‹ˆλ‹€.

5. λΆ„ (Minute) μΆ”μΆœν•˜κΈ°

DECLARE @DateTimeToExtract DATETIME = '2022-07-20 15:30:45';

SELECT DATEPART(minute, @DateTimeToExtract) AS ExtractedMinute;

minuteλ₯Ό datepart둜 μ§€μ •ν•˜μ—¬ λ‚ μ§œμ™€ μ‹œκ°„μ—μ„œ 뢄을 μΆ”μΆœν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€. @DateTimeToExtract λ³€μˆ˜μ—λŠ” μΆ”μΆœν•  λŒ€μƒμΈ λ‚ μ§œμ™€ μ‹œκ°„ 값이 μ €μž₯λ˜μ–΄ 있으며, DATEPART ν•¨μˆ˜μ˜ κ²°κ³ΌλŠ” ExtractedMinuteλΌλŠ” λ³„μΉ­μœΌλ‘œ λ°˜ν™˜λ©λ‹ˆλ‹€.

μœ„ μ˜ˆμ œμ—μ„œλŠ” DATEPART ν•¨μˆ˜λ₯Ό ν™œμš©ν•˜μ—¬ 주어진 λ‚ μ§œ λ˜λŠ” μ‹œκ°„ 값을 λΆ„μ„ν•˜κ³  μ›ν•˜λŠ” 정보λ₯Ό μΆ”μΆœν•˜λŠ” 방법을 μ‚΄νŽ΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€. μœ μš©ν•œ 데이터 뢄석 및 필터링 μž‘μ—…μ— DATEPART ν•¨μˆ˜λ₯Ό 적절히 ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

DATEDIFF ν•¨μˆ˜ μ‚¬μš©λ²•κ³Ό 예제

DATEDIFF ν•¨μˆ˜λŠ” 두 λ‚ μ§œ λ˜λŠ” μ‹œκ°„ μ‚¬μ΄μ˜ 차이λ₯Ό κ³„μ‚°ν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. 이 ν•¨μˆ˜λ₯Ό ν™œμš©ν•˜λ©΄ λ‚ μ§œ λ˜λŠ” μ‹œκ°„ 간격을 계산할 수 μžˆμŠ΅λ‹ˆλ‹€. λ‹€μŒμ€ DATEDIFF ν•¨μˆ˜μ˜ μ‚¬μš©λ²•κ³Ό μ˜ˆμ œμž…λ‹ˆλ‹€.

1. λ‚ μ§œ 간격(Difference) κ³„μ‚°ν•˜κΈ°

DECLARE @StartDate DATETIME = '2022-01-01';
DECLARE @EndDate DATETIME = '2022-12-31';

SELECT DATEDIFF(day, @StartDate, @EndDate) AS DateDifference;

λ‚ μ§œ 간격(Difference)을 κ³„μ‚°ν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€. @StartDate와 @EndDate λ³€μˆ˜μ—λŠ” 비ꡐ할 두 λ‚ μ§œ 값이 μ €μž₯λ˜μ–΄ 있으며, DATEDIFF ν•¨μˆ˜λ‘œ dayλΌλŠ” 간격을 μ„€μ •ν•˜μ—¬ λ‚ μ§œ κ°„μ˜ 차이λ₯Ό κ³„μ‚°ν•©λ‹ˆλ‹€. κ²°κ³ΌλŠ” DateDifferenceλΌλŠ” λ³„μΉ­μœΌλ‘œ λ°˜ν™˜λ©λ‹ˆλ‹€.

2. μ‹œκ°„ 간격(Difference) κ³„μ‚°ν•˜κΈ°

DECLARE @StartTime DATETIME = '2022-01-01 10:00:00';
DECLARE @EndTime DATETIME = '2022-01-01 12:30:00';

SELECT DATEDIFF(second, @StartTime, @EndTime) AS TimeDifference;

μ‹œκ°„ 간격(Difference)을 κ³„μ‚°ν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€. @StartTimeκ³Ό @EndTime λ³€μˆ˜μ—λŠ” 비ꡐ할 두 μ‹œκ°„ 값이 μ €μž₯λ˜μ–΄ 있으며, DATEDIFF ν•¨μˆ˜λ‘œ secondλΌλŠ” 간격을 μ„€μ •ν•˜μ—¬ μ‹œκ°„ κ°„μ˜ 차이λ₯Ό κ³„μ‚°ν•©λ‹ˆλ‹€. κ²°κ³ΌλŠ” TimeDifferenceλΌλŠ” λ³„μΉ­μœΌλ‘œ λ°˜ν™˜λ©λ‹ˆλ‹€.

3. μ£ΌκΈ° 간격(Difference) κ³„μ‚°ν•˜κΈ°

DECLARE @StartDate DATE = '2022-01-01';
DECLARE @EndDate DATE = '2022-12-31';

SELECT DATEDIFF(month, @StartDate, @EndDate) / 3 AS QuarterDifference;

μ£ΌκΈ° 간격(Difference)을 κ³„μ‚°ν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€. @StartDate와 @EndDate λ³€μˆ˜μ—λŠ” 비ꡐ할 두 λ‚ μ§œ 값이 μ €μž₯λ˜μ–΄ 있으며, DATEDIFF ν•¨μˆ˜λ‘œ monthλΌλŠ” 간격을 μ„€μ •ν•˜μ—¬ μ›” κ°„μ˜ 차이λ₯Ό κ³„μ‚°ν•©λ‹ˆλ‹€. κ²°κ³Όλ₯Ό 3으둜 λ‚˜λˆ„μ–΄ λΆ„κΈ° 간격을 κ³„μ‚°ν•œ λ’€ QuarterDifferenceλΌλŠ” λ³„μΉ­μœΌλ‘œ λ°˜ν™˜λ©λ‹ˆλ‹€.

μœ„ μ˜ˆμ œμ—μ„œλŠ” DATEDIFF ν•¨μˆ˜λ₯Ό ν™œμš©ν•˜μ—¬ 두 λ‚ μ§œ λ˜λŠ” μ‹œκ°„ κ°’ μ‚¬μ΄μ˜ 간격을 κ³„μ‚°ν•˜λŠ” 방법을 μ‚΄νŽ΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€. DATEDIFF ν•¨μˆ˜λ₯Ό 적절히 μ‚¬μš©ν•˜λ©΄ 데이터 λΆ„μ„μ΄λ‚˜ κΈ°κ°„ 계산에 μœ μš©ν•˜κ²Œ ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

DATEDIFF ν•¨μˆ˜μ˜ μ—­ν• κ³Ό 의미

DATEDIFF ν•¨μˆ˜λŠ” λ‚ μ§œ λ˜λŠ” μ‹œκ°„ μ‚¬μ΄μ˜ 차이λ₯Ό κ³„μ‚°ν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. 이 ν•¨μˆ˜λ₯Ό ν™œμš©ν•˜λ©΄ 두 λ‚ μ§œ λ˜λŠ” μ‹œκ°„ κ°’ μ‚¬μ΄μ˜ 간격을 μ‰½κ²Œ 계산할 수 μžˆμŠ΅λ‹ˆλ‹€. DATEDIFF ν•¨μˆ˜μ˜ μ—­ν• κ³Ό 의미λ₯Ό μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

DATEDIFF ν•¨μˆ˜λŠ” λ‹€μŒκ³Ό 같은 ν˜•μ‹μœΌλ‘œ μ‚¬μš©λ©λ‹ˆλ‹€:

DATEDIFF (datepart, startdate, enddate)
  • datepart: 계산할 λ‚ μ§œ λ˜λŠ” μ‹œκ°„ 간격을 μ§€μ •ν•˜λŠ” λ§€κ°œλ³€μˆ˜μž…λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ year, month, day, hour, minute, second 등이 올 수 μžˆμŠ΅λ‹ˆλ‹€.
  • startdate: 비ꡐ할 첫 번째 λ‚ μ§œ λ˜λŠ” μ‹œκ°„ 값을 λ‚˜νƒ€λ‚΄λŠ” λ§€κ°œλ³€μˆ˜μž…λ‹ˆλ‹€.
  • enddate: 비ꡐ할 두 번째 λ‚ μ§œ λ˜λŠ” μ‹œκ°„ 값을 λ‚˜νƒ€λ‚΄λŠ” λ§€κ°œλ³€μˆ˜μž…λ‹ˆλ‹€.

DATEDIFF ν•¨μˆ˜λŠ” enddateμ—μ„œ startdateλ₯Ό λΊ€ κ°’μœΌλ‘œ κ³„μ‚°λœ κ²°κ³Όλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ κ²°κ³ΌλŠ” datepart λ§€κ°œλ³€μˆ˜μ— 따라 λ‹€λ₯΄κ²Œ ν‘œν˜„λ  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ datepartκ°€ year둜 μ„€μ •λœ 경우, κ²°κ³ΌλŠ” 두 λ‚ μ§œ μ‚¬μ΄μ˜ 연도 차이λ₯Ό λ‚˜νƒ€λ‚΄λ©°, datepartκ°€ second둜 μ„€μ •λœ 경우 κ²°κ³ΌλŠ” 두 μ‹œκ°„ μ‚¬μ΄μ˜ 초 차이λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

DATEDIFF ν•¨μˆ˜μ˜ μ‚¬μš©μ€ 데이터 λΆ„μ„μ΄λ‚˜ κΈ°κ°„ 계산과 κ΄€λ ¨λœ λ‹€μ–‘ν•œ μž‘μ—…μ— μœ μš©ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ 두 λ‚ μ§œ κ°„μ˜ 기간을 κ³„μ‚°ν•˜κ³  λ‚ μ§œ 차이λ₯Ό μ–»λŠ” λ“±μ˜ μž‘μ—…μ„ ν•  λ•Œ DATEDIFF ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ‚ μ§œ λ˜λŠ” μ‹œκ°„ 간격을 ν‘œν˜„ν•˜λŠ” 데 μžˆμ–΄ DATEDIFF ν•¨μˆ˜λŠ” 맀우 νŽΈλ¦¬ν•œ λ„κ΅¬μž…λ‹ˆλ‹€.

DATEDIFF ν•¨μˆ˜μ˜ 문법

DATEDIFF ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” λ‹€μŒκ³Ό 같은 문법을 따라야 ν•©λ‹ˆλ‹€.

DATEDIFF(datepart, startdate, enddate)
  • datepart: 계산할 λ‚ μ§œ λ˜λŠ” μ‹œκ°„ 간격을 μ§€μ •ν•˜λŠ” λ§€κ°œλ³€μˆ˜μž…λ‹ˆλ‹€. 이 λ§€κ°œλ³€μˆ˜λŠ” λ¬Έμžμ—΄ ν˜•νƒœλ‘œ μ‚¬μš©λ˜λ©°, κ³„μ‚°ν•˜λ €λŠ” 간격에 따라 λ‹€λ₯Έ 값을 μ„ νƒν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ λ‹€μŒκ³Ό 같은 값이 올 수 μžˆμŠ΅λ‹ˆλ‹€:
    • yy λ˜λŠ” year: 년도 κ°„μ˜ 차이
    • qq λ˜λŠ” quarter: λΆ„κΈ° κ°„μ˜ 차이
    • mm λ˜λŠ” month: μ›” κ°„μ˜ 차이
    • dd λ˜λŠ” day: 일 κ°„μ˜ 차이
    • hh λ˜λŠ” hour: μ‹œκ°„ κ°„μ˜ 차이
    • mi λ˜λŠ” minute: λΆ„ κ°„μ˜ 차이
    • ss λ˜λŠ” second: 초 κ°„μ˜ 차이
  • startdate: 비ꡐ할 첫 번째 λ‚ μ§œ λ˜λŠ” μ‹œκ°„ 값을 λ‚˜νƒ€λ‚΄λŠ” λ§€κ°œλ³€μˆ˜μž…λ‹ˆλ‹€. 이 값은 λ‚ μ§œ λ˜λŠ” μ‹œκ°„ 데이터 ν˜•μ‹μ΄μ–΄μ•Ό ν•©λ‹ˆλ‹€.
  • enddate: 비ꡐ할 두 번째 λ‚ μ§œ λ˜λŠ” μ‹œκ°„ 값을 λ‚˜νƒ€λ‚΄λŠ” λ§€κ°œλ³€μˆ˜μž…λ‹ˆλ‹€. 이 값은 λ‚ μ§œ λ˜λŠ” μ‹œκ°„ 데이터 ν˜•μ‹μ΄μ–΄μ•Ό ν•©λ‹ˆλ‹€.

DATEDIFF ν•¨μˆ˜λŠ” enddateμ—μ„œ startdateλ₯Ό λΊ€ 값을 κ³„μ‚°ν•˜μ—¬ 결과둜 λ°˜ν™˜ν•©λ‹ˆλ‹€. λ°˜ν™˜λ˜λŠ” κ²°κ³ΌλŠ” datepart λ§€κ°œλ³€μˆ˜μ— 따라 λ‹€λ₯΄κ²Œ ν‘œν˜„λ©λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄, DATEDIFF(yy, @StartDate, @EndDate)의 경우 @StartDate와 @EndDate μ‚¬μ΄μ˜ 연도 κ°„μ˜ 차이λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. λ§ˆμ°¬κ°€μ§€λ‘œ, DATEDIFF(dd, @StartDate, @EndDate)λŠ” @StartDate와 @EndDate μ‚¬μ΄μ˜ 일 κ°„μ˜ 차이λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

DATEPART λ§€κ°œλ³€μˆ˜μ—λŠ” 별칭을 μ‚¬μš©ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, DATEDIFF(year, @StartDate, @EndDate)와 DATEDIFF(yy, @StartDate, @EndDate)λŠ” λ™μΌν•œ κ²°κ³Όλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

DATEDIFF ν•¨μˆ˜λ₯Ό 적절히 ν™œμš©ν•˜λ©΄ 데이터 λΆ„μ„μ΄λ‚˜ λ‚ μ§œ/μ‹œκ°„ 간격 계산에 μœ μš©ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

DATEDIFF ν•¨μˆ˜ 예제: 두 λ‚ μ§œ κ°„μ˜ 차이 κ³„μ‚°ν•˜κΈ° (일, μ£Ό, μ›”, 연도 λ“±)

DATEDIFF ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 두 λ‚ μ§œ κ°„μ˜ 차이λ₯Ό κ³„μ‚°ν•˜λŠ” λ‹€μ–‘ν•œ 예제λ₯Ό μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€. DATEDIFF ν•¨μˆ˜λŠ” datepart λ§€κ°œλ³€μˆ˜μ— 따라 λ‹€λ₯Έ κ²°κ³Όλ₯Ό λ°˜ν™˜ν•˜κΈ° λ•Œλ¬Έμ—, μ‚¬μš©ν•˜λŠ” datepart에 λ”°λΌμ„œ 차이의 계산 λ‹¨μœ„κ°€ λ‹¬λΌμ§‘λ‹ˆλ‹€.

λ‚ μ§œ κ°„μ˜ 차이 κ³„μ‚°ν•˜κΈ°

일 κ°„μ˜ 차이 κ³„μ‚°ν•˜κΈ°

두 λ‚ μ§œ μ‚¬μ΄μ˜ 일 κ°„μ˜ 차이λ₯Ό κ³„μ‚°ν•˜λ €λ©΄ datepart λ§€κ°œλ³€μˆ˜λ₯Ό 'dd'둜 μ„€μ •ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, DATEDIFF('dd', '2022-01-01', '2022-01-10')은 '2022-01-01'κ³Ό '2022-01-10' μ‚¬μ΄μ˜ 일 κ°„μ˜ 차이λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. 이 경우 κ²°κ³ΌλŠ” 9μΌμž…λ‹ˆλ‹€.

μ£Ό κ°„μ˜ 차이 κ³„μ‚°ν•˜κΈ°

두 λ‚ μ§œ μ‚¬μ΄μ˜ μ£Ό κ°„μ˜ 차이λ₯Ό κ³„μ‚°ν•˜λ €λ©΄ datepart λ§€κ°œλ³€μˆ˜λ₯Ό 'ww'둜 μ„€μ •ν•©λ‹ˆλ‹€. 주의 μ‹œμž‘μ€ μ‚¬μš©ν•˜λŠ” DBMS에 따라 λ‹€λ₯Ό 수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, DATEDIFF('ww', '2022-01-01', '2022-01-10')은 '2022-01-01'κ³Ό '2022-01-10' μ‚¬μ΄μ˜ μ£Ό κ°„μ˜ 차이λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. 이 경우 κ²°κ³ΌλŠ” 1μ£ΌμΌμž…λ‹ˆλ‹€.

μ›” κ°„μ˜ 차이 κ³„μ‚°ν•˜κΈ°

두 λ‚ μ§œ μ‚¬μ΄μ˜ μ›” κ°„μ˜ 차이λ₯Ό κ³„μ‚°ν•˜λ €λ©΄ datepart λ§€κ°œλ³€μˆ˜λ₯Ό 'mm'으둜 μ„€μ •ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, DATEDIFF('mm', '2022-01-01', '2022-03-01')은 '2022-01-01'κ³Ό '2022-03-01' μ‚¬μ΄μ˜ μ›” κ°„μ˜ 차이λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. 이 경우 κ²°κ³ΌλŠ” 2κ°œμ›”μž…λ‹ˆλ‹€.

연도 κ°„μ˜ 차이 κ³„μ‚°ν•˜κΈ°

두 λ‚ μ§œ μ‚¬μ΄μ˜ 연도 κ°„μ˜ 차이λ₯Ό κ³„μ‚°ν•˜λ €λ©΄ datepart λ§€κ°œλ³€μˆ˜λ₯Ό 'yy'둜 μ„€μ •ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, DATEDIFF('yy', '2022-01-01', '2024-01-01')은 '2022-01-01'κ³Ό '2024-01-01' μ‚¬μ΄μ˜ 연도 κ°„μ˜ 차이λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. 이 경우 κ²°κ³ΌλŠ” 2λ…„μž…λ‹ˆλ‹€.

μ‹œκ°„ κ°„μ˜ 차이 κ³„μ‚°ν•˜κΈ°

DATEDIFF ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 두 μ‹œκ°„ κ°„μ˜ 차이λ₯Ό κ³„μ‚°ν•˜λŠ” 것도 κ°€λŠ₯ν•©λ‹ˆλ‹€. μ—¬κΈ°μ—λŠ” λ‹€μ–‘ν•œ μ‚¬μš© 사둀가 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€λ©΄ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

μ‹œκ°„ κ°„μ˜ 차이 κ³„μ‚°ν•˜κΈ°

두 μ‹œκ°„ μ‚¬μ΄μ˜ μ‹œκ°„ κ°„μ˜ 차이λ₯Ό κ³„μ‚°ν•˜λ €λ©΄ datepart λ§€κ°œλ³€μˆ˜λ₯Ό 'hh'둜 μ„€μ •ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, DATEDIFF('hh', '09:00:00', '13:30:00')은 '09:00:00'κ³Ό '13:30:00' μ‚¬μ΄μ˜ μ‹œκ°„ κ°„μ˜ 차이λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. 이 경우 κ²°κ³ΌλŠ” 4μ‹œκ°„μž…λ‹ˆλ‹€.

λΆ„ κ°„μ˜ 차이 κ³„μ‚°ν•˜κΈ°

두 μ‹œκ°„ μ‚¬μ΄μ˜ λΆ„ κ°„μ˜ 차이λ₯Ό κ³„μ‚°ν•˜λ €λ©΄ datepart λ§€κ°œλ³€μˆ˜λ₯Ό 'mi'둜 μ„€μ •ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, DATEDIFF('mi', '09:00:00', '10:15:00')은 '09:00:00'κ³Ό '10:15:00' μ‚¬μ΄μ˜ λΆ„ κ°„μ˜ 차이λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. 이 경우 κ²°κ³ΌλŠ” 75λΆ„μž…λ‹ˆλ‹€.

초 κ°„μ˜ 차이 κ³„μ‚°ν•˜κΈ°

두 μ‹œκ°„ μ‚¬μ΄μ˜ 초 κ°„μ˜ 차이λ₯Ό κ³„μ‚°ν•˜λ €λ©΄ datepart λ§€κ°œλ³€μˆ˜λ₯Ό 'ss'둜 μ„€μ •ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, DATEDIFF('ss', '09:00:00', '09:00:15')은 '09:00:00'κ³Ό '09:00:15' μ‚¬μ΄μ˜ 초 κ°„μ˜ 차이λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. 이 경우 κ²°κ³ΌλŠ” 15μ΄ˆμž…λ‹ˆλ‹€.

DATEDIFF ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‚ μ§œ 및 μ‹œκ°„ κ°„μ˜ 차이λ₯Ό κ³„μ‚°ν•˜λŠ” 것은 λ‹€μ–‘ν•œ μ‹œλ‚˜λ¦¬μ˜€μ—μ„œ μœ μš©ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ ν•¨μˆ˜λ₯Ό μ μ ˆν•˜κ²Œ ν™œμš©ν•˜μ—¬ 데이터 뢄석 및 κΈ°κ°„ 계산을 μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λŒ“κΈ€