두 날짜 사이의 시간 간격 수를 지정하는 Variant (Long)를 반환합니다.
구문
DateDiff(interval, date1, date2[, firstdayofweek][, firstweekofyear])
함수에는 DateDiff 다음과 같은 인수가 있습니다.
| 인수 | 설명 |
|---|---|
interval |
필수 요소입니다. 와 date2의 차이를 date1 계산하는 데 사용하는 시간 간격인 문자열 식입니다. |
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 두 날짜 사이의 일 수 또는 오늘과 연말 사이의 주 수를 계산할 수 있습니다.
와 date2사이의 date1 일 수를 계산하려면 연도의 날() 또는 일("y")을"d" 사용할 수 있습니다. 이 Weekday("w")인 DateDiff 경우 interval 두 날짜 사이의 주 수를 반환합니다. 월요일에 해당하는 경우 date1 는 DateDiff 까지 date2의 월요일 수를 계산합니다. 계산되지만 은 date2 계산되지 않습니다 date1. 그러나 이 Week("ww")인 경우 interval 함수는 DateDiff 두 날짜 사이의 달력 주 수를 반환합니다. 과 date2사이의 date1 일요일 수를 계산합니다.
DateDiff
date2 는 일요일에 속하는 경우 계산되지만, 일요일에 떨어지더라도 은 계산date1되지 않습니다.
보다 이후 시점date2을 참조하는 경우 date1 함수는 DateDiff 음수를 반환합니다.
인수는 firstdayofweek 및 "ww" 간격 기호를 사용하는 계산에 "w" 영향을 줍니다.
또는 date2 가 날짜 리터럴인 경우 date1 지정된 연도는 해당 날짜의 영구적인 부분이 됩니다. 그러나 date1 또는 date2 가 큰따옴표(" ")로 묶이고 연도를 생략하면 또는 date2 식이 계산될 때마다 date1 현재 연도가 코드에 삽입됩니다. 이렇게 하면 다른 연도에 사용할 수 있는 코드를 작성할 수 있습니다.
12월 31일과 다음 해 DateDiff 1월 1일을 비교하면 Year("yyyy")의 경우 하루만 지나도 1을 반환합니다.
참고
및 date2의 경우 date1 속성 설정이 Calendar 그레고리력인 경우 제공된 날짜는 그레고리력이어야 합니다. 일정이 Hijri인 경우 제공된 날짜는 Hijri여야 합니다.
DateDiff 쿼리 예제
| Expression | 결과 |
|---|---|
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; |
날짜 01/01/2010 와 필드의 값 DateofSale 사이의 차이를 연도로 반환합니다. |
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
시스템 날짜와 사이의 연도를 기준으로 분기 단위로 차이를 반환하고 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열에 DaysSinceSale 표시합니다. 월요일에 DateDiff 해당하는 경우 DateofSale 시스템 날짜까지의 월요일 수를 계산합니다. 시스템 날짜는 계산하지만 값은 DateofSale 계산하지 않습니다. |
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
시스템 날짜와 사이의 차이를 달력 주 단위로 반환 DateofSale하고 열에 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