날짜/시간 확장 데이터 형식은 날짜와 시간 정보를 저장하고 날짜/시간 데이터 형식과 유사하지만, 더 넓은 날짜 범위, 더 큰 소수 정밀도, 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"로 설정하면 원하는 결과가 표시됩니다.