지정된 두 날짜 간의 시간 간격 수를 지정하는 Variant(Long)를 반환합니다.
구문
DateDiff(interval, date1, date2 [, firstdayofweek] [, firstweekofyear] )
DateDiff 함수 구문에는 다음 인수가 있습니다.
팁: Access 2010에서 식 작성기에는 IntelliSense 있으므로 식에 필요한 인수를 볼 수 있습니다.
인수 |
설명 |
interval |
필수 요소입니다. date1과 date2 사이의 차이를 계산하는 데 사용하는 시간 간격인 문자열 식입니다. |
date1, date2 |
필수 요소입니다. 변형(날짜). 계산에 사용할 두 날짜입니다. |
firstdayofweek |
선택 사항입니다. 상수 첫 번째 날을 지정하는 1개입니다. 지정하지 않으면 일요일이 가정됩니다. |
firstweekofyear |
선택 사항입니다. 연도의 첫 주를 지정하는 상수입니다. 지정하지 않으면 첫 번째 주가 1월 1일이 발생하는 주로 가정됩니다. |
설정
간격 인수 설정이 있습니다.
설정 |
설명 |
yyyy |
연도 |
q |
분기 |
m |
월 |
y |
연도의 날 |
d |
일 |
w |
Weekday |
ww |
주 |
h |
시간 |
n |
분 |
s |
초 |
첫 번째dayofweek 인수에는 다음 설정이 있습니다.
상수 |
값 |
설명 |
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를 사용하여 두 날짜 사이의 일 수 또는 오늘과 연말 사이의 주 수를 계산할 수 있습니다.
date1과 date2 사이의 일 수를 계산하기 위해 연도("y") 또는 Day("d")를 사용할 수 있습니다. 간격이 평일("w")인 경우 DateDiff는 두 날짜 사이의 주 수를 반환합니다. date1이 월요일에 있는 경우 DateDiff는 날짜2까지 월요일의 수를 계산합니다.date2를 계산하지만 date1은 계산하지 않습니다. 그러나 간격이 주("ww")인 경우 DateDiff 함수는 두 날짜 사이의 달력 주 수를 반환합니다. date1과 date2 사이의 일요일 수를 계산합니다.DateDiff는 일요일에 해당하면 date2를 계산합니다. 하지만 날짜1은일요일에 해당하지 않는 경우에도 계산되지 않습니다.
date1이 date2보다 후기 시점을 참조하는 경우 DateDiff 함수는 음수(음수)를 반환합니다.
첫 번째dayofweek 인수는 "w" 및 "ww" 간격 기호를 사용하는 계산에 영향을 미치게 됩니다.
date1 또는 date2가날짜 리터럴 경우 지정된 연도는 해당 날짜의 영구 부분이 됩니다. 그러나 date1 또는 date2가 두 배 인용 부호(" ")로 묶인 경우 연도는 날짜1 또는 date2 식이 평가될 때마다 코드에 삽입됩니다. 이렇게 하면 다른 연도에 사용할 수 있는 코드를 작성할 수 있습니다.
직후 연도의 12월 31일과 1월 1일을 비교할 때 DateDiff for Year("yyyyy")는 하루만 경과한 경우에도 1을 반환합니다.
참고: date1 및 date2의 경우 일정 속성 설정이 Gregorian인 경우 제공된 날짜는 Gregorian이 되어야 합니다. 일정이 Hijri인 경우 제공된 날짜는 Hijri입니다.
DateDiff 쿼리 예제
식 |
결과 |
SELECT DateDiff("yyyyy",#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"의 차이를 '분기'(연도 기준)로 반환하고 "DaysSinceSale" 열에 표시됩니다. 시스템 날짜와 "DateofSale"의 차이를 'Months'로 반환하고 "DaysSinceSale" 열에 표시됩니다. |
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
시스템 날짜와 "DateofSale"의 차이를 'Days'의 수로 반환하고 "DaysSinceSale"열에 표시됩니다. |
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
시스템 날짜와 "DateofSale"의 차이를 'Days'의 수로 반환하고 "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 Weeks"의 수로 반환하고 "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일이 소요된다고 생각하면 다음과 같이 텍스트 상자의 Control Source 속성을 설정합니다.
=DateDiff("d", Now(), [Orders].[ ReceiveBefore])-10
양식 보기에서 폼을 열면 텍스트 상자에 주문이 배송되기 전에 남은 일 수가 표시됩니다. 고객이 주문을 수신해야 하기까지 10일 미만이 남은 경우 텍스트 상자의 숫자는 음수로 표시하고 주문이 즉시 배송된 경우 얼마나 늦게 될지 나타냅니다.
VBA 예제
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