날짜/시간 확장 데이터 형식 사용하기

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

날짜/시간 확장 데이터 형식은 날짜와 시간 정보를 저장하고 날짜/시간 데이터 형식과 유사하지만, 더 넓은 날짜 범위, 더 큰 소수 정밀도, SQL Server datetime2 날짜 형식과의 호환성을 제공합니다. Access 데이터를 SQL Server에 가져오거나 연결할 때 Access 날짜/시간 확장 필드를 SQL Server datetime2 열에 일관되게 매핑할 수 있습니다. 자세한 내용은 datetime2(Transact-SQL)를 참조하세요.

날짜/시간 확장 범위 경고 Access에서 식을 만들고 날짜/시간 확장 데이터 형식을 기반으로 날짜/시간 함수를 사용하면 계산 정밀도가 떨어지거나 결과에 다른 문제가 발생할 수 있습니다. Microsoft는 이 문제에 대해 알고 있으며 이후 릴리스에서 식이나 함수를 더 잘 지원할 계획입니다. 이 문제를 해결하기 위해 통과 쿼리를 만들어 이에 해당하는 SQL Server 식과 날짜/시간 함수를 사용할 수 있습니다. 자세한 내용은 Access SQL과 SQL Server TSQL 비교를 참조하세요.

이 문서의 내용

날짜/시간 형식과 날짜/시간 확장 데이터 형식 비교하기 날짜/시간 확장 데이터 형식 사용하기 이전 버전과의 호환성 고려 사항 VBA에서 날짜/시간 확장 데이터 형식을 문자열로 사용하기

날짜/시간 형식과 날짜/시간 확장 데이터 형식 비교하기

다음 표에는 두 데이터 형식 사이의 주요 차이가 요약되어 있습니다.

속성 날짜/시간 날짜/시간 확장
최솟값 100-01-01 00:00:00 0001-01-01 00:00:00
최댓값 9999-12-31 23:59:59.999 9999-12-31 23:59:59.9999999
정확도 0.001초 1나노초
크기 이중 정밀도 부동 소수점 42바이트의 인코딩된 문자열

맨 위로 이동

날짜/시간 확장 데이터 형식 사용하기

다음 정보는 중요한 사용 고려 사항에 대해 설명합니다.

테이블 디자인 보기 필드를 Access 테이블에 추가하면 더 넓은 데이터 범위와 더 높은 정밀도를 활용할 수 있습니다. 테이블 디자인 보기에서 날짜/시간을 날짜/시간 확장 데이터 형식으로 변환할 수도 있습니다. 이 데이터 형식을 기본 키 필드로 사용할 수도 있습니다. 자세한 내용은 테이블 만들기 및 필드 추가하기를 참조하세요.

날짜 및 시간 입력 날짜 및 시간 값을 입력하는 것은 소수 나노초를 입력할 수도 있다는 점을 제외하면 날짜/시간 데이터 형식과 비슷합니다. 예:

  • 입력 데이터 서식: mm/dd/yyyy hh:mm:ss.nnnnnnn
  • 예: 06/15/1215 09:25:3.234

소수 나노초가 7자리를 초과하는 경우 7자리로 반올림됩니다. 소수 나노초 표시를 제어하려면 테이블을 열고 리본에서 필드를 선택한 다음 서식 그룹에서 소수점 버튼이미지 또는 소수 버튼 이미지 감소를 선택합니다.

서식 지정 날짜/시간 및 날짜/시간 확장 데이터 형식은 모두 일반 날짜, 긴 날짜, 중간 날짜, 짧은 날짜, 긴 시간, 보통 시간짧은 시간의 유사한 표준 서식 문자열을 사용하며 둘 다 사용자 지정 서식을 지원합니다. 날짜/시간 확장 데이터 서식의 경우 시간 기반 표준 데이터 서식은 나노초에 대한 소수 정밀도를 지원할 수도 있습니다. 날짜/시간 확장 데이터 형식에 대한 기본값은 기본 날짜자세한 시간 서식이며 Windows 국가별 설정에 지정된 옵션을 따릅니다. 소수 자릿수 속성을 사용하여 소수점 오른쪽 자릿수(1~7)를 지정하여 소수 정밀도 서식을 제어할 수도 있습니다.

연결 및 가져오기 SQL Server datetime2 데이터 형식과 같이 해당 데이터 형식의 데이터베이스에 연결하거나 데이터베이스에서 가져올 수도 있습니다. SQL Server 버전 2014 이상 데이터베이스가 지원됩니다. 날짜/시간 확장 데이터 형식에는 Microsoft ODBC Driver for SQL Server 11 이상을 사용해야 합니다. SQL Server용 Microsoft ODBC 드라이버 13.1을 사용하는 것이 좋습니다. 또한 OLE DB 사용도 지원됩니다. 자세한 내용은 ODBC 날짜 및 시간 개선 사항에 대한 데이터 형식 지원향상된 날짜 및 시간 기능 사용(OLE DB)을 참조하세요.

양식 및 보고서 날짜/시간 확장 데이터 형식을 폼이나 보고서에 추가할 수 있습니다. 양식에서 날짜 선택기와 입력 마스크를 사용하여 더 넓은 범위의 날짜를 입력할 수 있지만 나노초의 소수 정밀도는 사용할 수 없습니다.

Expression 지원 날짜/시간 확장 데이터 형식은 SQL 집계 함수 및 식 평가를 지원합니다. 예를 들어, LoggedDateTime을 날짜/시간 데이터 형식이 있는 필드로 사용하는 경우:

작업 예제 결과
최솟값 찾기 Min(LoggedDateTime) 범위 내에서 가장 이른 날짜와 시간
월 추출하기 Month(LoggedDateTime) 월 이름(예: 1 월)
1일 추가하기 [LoggedDateTime]+1 화요일이 수요일이 됩니다.

맨 위로 이동

이전 버전과 호환성 고려 사항

날짜/시간 확장 데이터 형식은 이전 버전의 Microsoft Access와 호환되지 않습니다. 이 형식이 로컬 Access 테이블 내에서 사용되는 경우 이 기능이 포함되지 않은 Access 버전에서는 데이터베이스를 열 수 없습니다.

현재 데이터베이스 액세스 옵션(연결된/lmported 테이블에 대한 날짜/시간 확장 데이터 형식 지원)을 사용하여 연결 및 가져오기 작업에 대해 날짜/시간 확장 데이터 형식을 사용하거나 사용하지 않도록 설정할 수 있습니다. 자세한 내용은현재 데이터베이스에 대한 사용자 옵션 설정을 참조하세요.

맨 위로 이동

VBA에서 날짜/시간 확장 데이터 형식을 문자열로 사용하기

다음 VBA 예제에서는 DAO 메서드를 사용하여 아래의 테이블에 따라 날짜/시간 확장 데이터 형식을 표시하고, 입력하고, 평가합니다.

ID DTEData DTData
1 1/1/2 1:01:03.1234567 AM 1/1/2001

테이블 이름: DTETable
ID 데이터 형식: 자동 번호
DTEData 데이터 형식: 날짜/시간 연장
DTData 데이터 형식: 날짜/시간

예: 날짜와 시간 표시하기

다음 예제에서는 날짜와 시간을 표시합니다. 사용된 데이터 서식은 mm/dd/yyyy hh:mm:ss.nnnnnnn(24시간 단위)입니다. 데이터 서식은 사용자 지정할 수 없습니다.


Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("DTETable")
Do Until rs.EOF
    Debug.Print rs!DTETable
    rs.MoveNext
Loop

결과 액세스 디스플레이: 01/01/0002 01:01:03.1234567.

예: 날짜와 시간 입력하기

다음 예제에서는 문자열 데이터 서식을 사용하여 날짜와 시간을 입력합니다. 모든 표준 날짜와 시간 데이터 서식이 지원됩니다.


Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("DTETable")
With CurrentDb.OpenRecordset("DTETable")
    .AddNew
    ![DTEData] = "1/1/9999 1:1:1.0123 AM"
    ![DTData] = #1/1/2001#
    .Update
End With

결과 새 행(ID = 2)이 추가됩니다.

ID DTEData DTData
1 1/1/2 1:01:03.1234567 AM 1/1/2001
2 1/1/9999 1:01:01.0123000 AM 1/1/2001

예: 쿼리 식 평가하기

다음 예제에서는 Day 함수를 사용하여 날짜 및 시간 필드에서 요일 번호를 추출합니다.


Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT Day(DTEData) as day FROM DTETable")
Do Until rs.EOF
    Debug.Print "The day of the month is: "&rs!day
    rs.MoveNext
Loop

결과 Access에 다음이 표시됩니다.

월의 날짜: 1
월의 날짜: 1

쿼리 식에서 날짜/시간 확장을 사용하여 작업하는 함수

다음 함수는 쿼리 식의 날짜/시간 확장과 함께 작동합니다.
​​​​​​​
년, 월, 요일, 일, 시, 분, 초, DateAdd, DateDiff 및 DatePart입니다.

또한 계산에서 날짜/시간 확장 값을 생성해야 하는지 결정하기 위해 인수 유형을 사용할 수 없는 일부 함수의 확장 버전이 있습니다. 문제는 다음과 같습니다.

DateValueExtended, TimeValueExtended, DateSerialExtended, TimeSerialExtended, NowExtended, DateExtended, DateTimeExtended 및 TimeExtended.

이러한 함수는 끝에 "Extended"가 없는 함수와 동일한 방식으로 작동하지만 날짜/시간 값이 아닌 날짜/시간 확장 값을 반환합니다.

VBA는 수정되지 않았으며, 새 함수는 VBA 코드에서 인식되지 않으며, 기존 함수는 날짜/시간 확장 값과 함께 작동하지 않습니다.

예제

원래 쿼리:


Select DateValue([OrderDate]) AS OrderDateOnly_DateValue

, Format([OrderDate],"Short Date") AS OrderDateOnly_Format

From tblOrders

이제 DateValue([OrderDate])를 DateValueExtended([OrderDate])로 변경하여 첫 번째 식을 수정합니다.

Access에서는 날짜/시간 확장 열에 대한 Format 함수를 처리하지 않습니다. 열에 대한 Format 속성을 설정하기만 하면 됩니다.

따라서 다음을 사용하는 경우:


SELECT DateValueExtended([OrderDate]) AS OrderDateOnly_DateValue, Table1.OrderDate

FROM Table1;

그리고 두 번째 열의 형식 속성을 "짧은 날짜"로 설정하면 원하는 결과를 얻을 수 있습니다.

맨 위로 이동

참고 항목

데이터 형식 및 필드 속성 정보

날짜 및 시간 필드 데이터 서식 지정하기

날짜 및 시간 필드 만들기 또는 삭제하기