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

적용 대상
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자리로 반올림됩니다. 소수 나노초의 표시를 제어하려면 표를 열고 리본 메뉴에서 필드를 선택하고 서식 그룹에서 10진수 단추이미지 늘리기 또는 10진수 단추이미지 감소를 선택합니다.

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

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

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

식 지원 날짜/시간 확장 데이터 형식은 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

결과 Access는 새 행(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

결과 액세스는 다음을 표시합니다.

월의 날짜는 1입니다.
월의 날짜는 1입니다.

쿼리 식에서 Date/Time Extended를 사용하는 함수

다음 함수는 쿼리 식에서 Date/Time Extended와 함께 작동합니다.
​​​​​​​
Year, Month, Weekday, Day, Hour, Minute, Second, DateAdd, DateDiff 및 DatePart.

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

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

이러한 함수는 끝에 "Extended"가 없는 함수와 동일한 방식으로 작동하지만 날짜/시간 값이 아닌 Date/Time 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;

두 번째 열의 Format 속성을 "Short Date"로 설정하면 원하는 결과가 표시됩니다.

맨 위로 이동

참고 항목

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

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

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