DateDiff 함수

적용 대상
Microsoft 365용 Access Access 2024 Access 2021 Access 2019 Access 2016

지정된 두 날짜 간의 시간 간격 수를 지정하는 Variant(Long)를 반환합니다.

구문

DateDiff(interval, date1, date2 [, firstdayofweek] [, firstweekofyear] )

DateDiff 함수 구문에는 다음과 같은 인수가 사용됩니다.

인수 설명
interval 필수 요소입니다. date1date2의 차이를 계산하는 데 사용하는 시간 간격인 문자열 식입니다.
date1, date2 필수 요소입니다. Variant (Date). 계산에 사용할 두 날짜입니다.
firstdayofweek 선택 요소입니다. 요일을 지정하는 상수입니다. 지정하지 않으면 일요일이 가정됩니다.
firstweekofyear 선택 요소입니다. 연도의 첫 주를 지정하는 상수입니다. 지정하지 않으면 첫 번째 주가 1월 1일이 발생하는 주로 간주됩니다.

설정

interval 인수에는 다음과 같은 설정이 있습니다.

설정 설명
yyyy
q 분기
m
y 연중 일
d
w Weekday
ww
h 시간
n
s

firstdayofweek 인수에는 다음 설정이 있습니다.

상수 설명
vbUseSystem 0 NLS API 설정을 사용합니다.
vbSunday 1 일요일(기본값)
vbMonday 2 월요일
vbTuesday 3 화요일
vbWednesday 4 수요일
vbThursday 5 목요일
vbFriday 6 금요일
vbSaturday 7 토요일
상수 설명
vbUseSystem 0 NLS API 설정을 사용합니다.
vbFirstJan1 1 1월 1일이 발생하는 주(기본값)로 시작합니다.
vbFirstFourDays 2 새해에 최소 4일이 있는 첫 주부터 시작합니다.
vbFirstFullWeek 3 올해의 첫 번째 전체 주부터 시작합니다.

주의

DateDiff 함수를 사용하여 두 날짜 사이에 존재하는 지정된 시간 간격 수를 확인할 수 있습니다. 예를 들어 DateDiff 를 사용하여 두 날짜 사이의 일 수 또는 오늘과 연말 사이의 주 수를 계산할 수 있습니다.

date1date2 사이의 일 수를 계산하려면 연도의 날("y") 또는 일("d")을 사용할 수 있습니다. interval이 Weekday("w")인 경우 DateDiff는 두 날짜 사이의 주 수를 반환합니다. date1이 월요일에 속하는 경우 DateDiffdate2까지의 월요일 수를 계산합니다. date2는 계산되지만 date1은 계산되지 않습니다. 그러나 interval 이 Week("ww")인 경우 DateDiff 함수는 두 날짜 사이의 달력 주 수를 반환합니다. date1date2 사이의 일요일 수를 계산합니다. DateDiff 는 일요일에 속하는 경우 date2 를 계산합니다. 그러나 일요일에 떨어지더라도 date1은 계산되지 않습니다.

date1date2보다 이후 시점을 참조하는 경우 DateDiff 함수는 음수를 반환합니다.

firstdayofweek 인수는 "w" 및 "ww" 간격 기호를 사용하는 계산에 영향을 줍니다.

date1 또는 date2가 날짜 리터럴이면 지정된 연도가 해당 날짜의 영구적인 부분이 됩니다. 그러나 date1 또는 date2 가 큰따옴표(" ")로 묶이고 연도를 생략하면 date1 또는 date2 식이 계산될 때마다 현재 연도가 코드에 삽입됩니다. 이렇게 하면 다른 연도에 사용할 수 있는 코드를 작성할 수 있습니다.

바로 다음 해의 12월 31일과 1월 1일을 비교할 때 DateDiff for Year("yyyy")는 하루만 경과했음에도 불구하고 1을 반환합니다.

참고

date1date2의 경우 Calendar 속성 설정이 그레고리력인 경우 제공된 날짜는 그레고리력이어야 합니다. 일정이 Hijri인 경우 제공된 날짜는 Hijri여야 합니다.

DateDiff 쿼리 예제

Expression 결과
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; Date2와 Date1의 차이를 '년'의 수로 반환합니다(Date1을 가장 오래된 것으로 간주하고 Date2를 최신으로 간주). 결과: "DateofSale" 필드의 값과 날짜 "01/01/2010"의 값이 '년'인 경우의 차이입니다.
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; 시스템 날짜와 "DateofSale"의 차이를 'Quarters' 수(계산기 연도 기준)로 반환하고 열 "DaysSinceSale"에 표시됩니다. 는 시스템 날짜와 "DateofSale"의 차이를 '월' 수로 반환하고 열 "DaysSinceSale"에 표시됩니다.
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; 시스템 날짜와 "DateofSale"의 차이를 '일' 수로 반환하고 열 "DaysSinceSale"에 표시됩니다.
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; 시스템 날짜와 "DateofSale"의 차이를 '일' 수로 반환하고 열 "DaysSinceSale"에 표시됩니다.
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; 시스템 날짜와 "DateofSale"의 차이를 'Weekdays' 수로 반환하고 열 "DaysSinceSale"에 표시됩니다. "DateofSale"이 월요일에 속하는 경우 DateDiff는 시스템 날짜까지의 월요일 수를 계산합니다. 시스템 날짜는 계산하지만 "DateofSale"의 값은 계산하지 않습니다.
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; 시스템 날짜와 "DateofSale"의 차이를 "Calender Week" 수로 반환하고 열 "DaysSinceSale"에 표시됩니다. "DateofSale"과 "시스템 날짜" 사이의 일요일 수를 계산합니다. 일요일에 속하는 경우 시스템 날짜를 계산합니다. 하지만 일요일에 떨어지더라도 "DateofSale"은 계산되지 않습니다.
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; 시스템 날짜와 "DateTime"의 차이를 '시간'의 수로 반환하고 열 "DaysSinceSale"에 표시됩니다.
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; 시스템 날짜와 "DateTime"의 차이를 '분'의 수로 반환하고 열 "DaysSinceSale"에 표시됩니다.
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; 시스템 날짜와 "DateTime"의 차이를 '초'의 수로 반환하고 열 "DaysSinceSale"에 표시됩니다.

식에서 DateDiff 함수 사용

식을 사용할 수 있는 모든 위치에서 DateDiff 함수를 사용할 수 있습니다. 예를 들어 고객 주문을 이행하는 데 사용하는 양식이 있다고 가정해 보겠습니다. 주문 테이블에는 고객이 주문을 받아야 하는 날짜가 포함된 ReceiveBefore 필드가 있습니다. DateDiff 함수를 양식의 텍스트 상자와 함께 사용하여 주문이 배송되기까지 남은 일 수를 표시할 수 있습니다.

주문을 발송하는 데 10일이 걸린다는 가정은 다음과 같이 텍스트 상자의 제어 원본 속성을 설정합니다.

=DateDiff("d", Now(), [Orders].[ ReceiveBefore])-10

양식 보기에서 양식을 열면 주문이 발송되기까지 남은 일 수가 텍스트 상자에 표시됩니다. 고객이 주문을 받기까지 10일이 채 남지 않은 경우 텍스트 상자의 숫자는 음수이며 주문이 즉시 배송되는 경우 주문이 얼마나 늦은지 나타냅니다.

VBA 코드에서 DateDiff 함수 사용

이 예제에서는 DateDiff 함수를 사용하여 지정된 날짜와 오늘 사이의 일 수를 표시합니다.


Dim TheDate As Date  ' Declare variables.
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg

참고 항목

적절한 날짜 함수 선택