[延長的日期/時間] 資料類型會儲存日期與時間資訊,且類似於 [日期/時間] 資料類型,但它提供較大的日期範圍、較高的小數精準度,以及與 SQL Server datetime2 日期類型的相容性。 當您將 Access 資料匯入或連結至 SQL Server 時,您可以將 Access [延長的日期/時間] 欄位一致地對應至 SQL Server datetime2 資料行。 如需詳細資訊,請參閱 datetime2 (Transact-SQL)。
警告 當您根據 Access 中的 [延長的日期/時間] 資料類型建立運算式並使用日期/時間函數時,您可能會遺失計算的精確度,或發生其他問題。 我們已發現這個問題,並計畫在即將推出的版本中加強運算式和函數的支援。 如需因應措施,您可以建立傳遞查詢,以使用同等 SQL Server 運算式和日期/時間函數。 如需詳細資訊,請參閱比較 Access SQL 和 SQL Server TSQL。
本文內容
比較 [日期/時間] 及 [延長的日期/時間] 資料類型
下表摘要說明兩種資料類型之間的重要差異。
屬性 |
日期/時間 |
延長的日期/時間 |
---|---|---|
最小值 |
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 或更新版本。 我們建議您使用 Microsoft ODBC Driver 13.1 for SQL Server。 也支援使用 OLE DB。 如需詳細資訊,請參閱資料類型對 ODBC 日期和時間支援的改善 (部分機器翻譯) 和使用增強型日期和時間功能 (OLE DB)。
表單和報表 您可以將 [延長的日期/時間] 資料類型新增到表單或報表。 在表單中,您可以使用 [日期選擇器] 和 [輸入遮罩] 來輸入具有較大範圍的日期,但不能輸入奈秒的小數精準度。
運算式支援 [延長的日期/時間] 資料類型支援 SQL 匯總函數和運算式評估。 例如,使用 LoggedDateTime 做為含有 [延長的日期/時間] 資料類型的欄位:
工作 |
範例 |
結果 |
---|---|---|
尋找最小值 |
Min(LoggedDateTime) |
範圍內的最早日期和時間 |
擷取月份 |
Month(LoggedDateTime) |
月份名稱,例如一月 |
新增一天 |
[LoggedDateTime]+1 |
星期二會變成星期三 |
回溯相容性考量
[延長的日期/時間] 延伸資料類型與舊版 Microsoft Access 不相容。 如果在本機 Access 數據表中使用該類型,則不包含該功能的 Access 版本將無法開啟資料庫。
您可以使用 [目前的資料庫 存取] 選項,針對鏈接和匯入作業啟用或停用 [延長的日期/時間] 數據類型,以支持連結/傳送數據表的 [延長的日期/時間] 數據類型。 如需詳細資訊,請參閱設定目前資料庫的使用者選項。
使用 [延長的日期/時間] 資料類型作為 VBA 中的字串
下列 VBA 範例使用 DAO 方法,根據下表顯示、輸入及評估 [延長的日期/時間] 資料類型。
識別碼 |
DTEData |
DTData |
1 |
1/1/2 1:01:03.1234567 AM |
1/1/2001 |
資料表名稱: DTETable
識別碼資料類型: 自動編號 DTEData 資料類型: 延長的日期與時間 DTData 資料類型: 日期/時間範例:顯示日期和時間
下列範例會顯示日期和時間。 所用的格式為 24小時制 mm/dd/yyyy hh:mm:ss.nnnnnnn。 無法自訂格式。
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
結果 Access 顯示: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 會新增一列 (識別碼 = 2):
識別碼 |
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