本文適用于 Microsoft Access 資料庫 ( .mdb) 檔案或 Microsoft Access 資料庫 ( .accdb) 檔案。
中等:需要基本宏、編碼和互操作性技能。
摘要
本文說明 Microsoft Office Access 2007、Microsoft Office Access 2003 和 Microsoft Access 2002 中可用的函式和運算符。 您可以使用 函式和運算符,使用範例查詢來變更日期/時間數據類型。 您可以用來變更日期值的範例查詢會使用Northwind.mdb範例資料庫中的數據表。
注意事項
Access 2007 的 Northwind 範例資料庫不會使用與舊版 Northwind 範例資料庫相同的欄位。 在 Employees 數據表中,Access 2007 的 Northwind 範例資料庫中沒有 HireDate 和 BirthDate 字段。 EmployeeID 字段已重新命名標識符,且 FirstName 字段已重新命名為名字。
其他相關資訊
Access 提供運算元和函式來驗證或變更日期/時間數據類型的欄位。 下列範例查詢會使用日期操作、計算函數,以及 Access 中可用的比較運算符。
Microsoft 提供的程式設計範例僅供說明之用,並不具任何明示或暗示的責任擔保。 這包括 (但不限於) 任何目的之適售性及適用性的暗示責任擔保。 本文假設您熟悉示範的程式設計語言,也熟悉用以建立和偵錯程序的工具。 Microsoft 支援工程師可協助說明特定程序的功能。 不過,他們不會修改這些範例以提供附加功能或建構程序來滿足您的特定需求。
Date () 函式、Now () 函式和 Format () 函式
SELECT Date () , Now () ;
Date () 函式會以簡短日期格式傳回目前的日期。 Now () 函式會傳回具有時間的目前日期。
SELECT Format (Now () , “dd mmmm yyyy”) ;
您可以使用 Format () 函式搭配日期值來指定您要用於日期的日期格式。 此範例查詢會以完整日期格式傳回目前日期 (2003 年 12 月 1 日) 。
Day () 函式、WeekDay () 函式、Month () 函式和 Year () 函式
SELECT HireDate, Day(HireDate) AS Day,
Weekday(HireDate) AS WeekDay,
Month(HireDate) AS Month, Year(HireDate) AS Year
FROM Employees;
從 [員工] 數據表中,此查詢會傳回每位員工的僱用日期、僱用日期、僱用周的日期、僱用月份和僱用年份。 請注意,WeekDay () 函式會傳回數值,指出星期幾。
DatePart () 函式
SELECT * FROM Employees
WHERE DatePart("yyyy", BirthDate) < 1960;
從 Employees 數據表中,此查詢會傳回 1960 年以前出生的所有員工。 DatePart () 函式可用來擷取指定日期的一部分,例如日、月或年。
DateDiff () 函式
SELECT EmployeeID, FirstName, BirthDate,
DateDiff("yyyy", BirthDate, Date()) AS Age
FROM Employees;
從 [員工] 數據表中,此查詢會傳回每位員工的員工標識碼、名字、出生日期和年齡。 DateDiff () 函式會傳回兩個指定日期值之間的差異或時間延遲, (以日、月、年或時間單位為單位,例如小時、分鐘和秒) 。
DateAdd () 函式
SELECT EmployeeID, FirstName, HireDate,
DateAdd("yyyy", 10, HireDate)
FROM Employees;
從 [員工] 數據表中,此查詢會傳回員工標識碼、名字、僱用日期,以及員工完成公司 10 年服務的日期。 DateAdd () 函式會以指定的時間單位數來遞增日期,例如日、月或年,然後傳回結果值。
您可以直接將數值新增至日期值。 執行此動作以將日期值遞增一天,如下列範例所示:
SELECT Date () + 1 ;
此查詢會將目前日期遞增一天,然後傳回結果日期值。
DateValue () 函式
SELECT DateValue (“2003 年 11 月 20 日”) AS ValidDate;
DateValue () 函式會驗證輸入字串是否為有效的日期。 如果將輸入字串辨識為有效的日期,則會以簡短日期格式傳回日期。 如果無法將輸入字串辨識為有效的日期,則會傳回「準則表示式中的數據類型不相符」語句。 DateValue () 函式可辨識各種日期格式,例如 mm dd yyyy、dd mm yyyy、dd mmm yyyy 和 dd mmm yyyy hh:mm:ss long date 格式。
DateSerial () 函式
SELECT DateSerial ( 2003, 03, 1-1) ;
DateSerial () 函式會傳回年、月和日之指定輸入參數的日期值。 輸入參數可以是涉及算術運算的表達式。 DateSerial () 函式會先評估輸入參數中的運算式,然後再傳回結果日期值。
此範例查詢會傳回 2003 年 2 月的最後一天。 值為 1 之日期的最後一個輸入參數會遞減 1。 結果是月份參數評估為 2。
搭配日期值使用比較運算符
您可以使用下列比較運算符來比較表示式和查詢中的日期值:
- < (小於)
- > (大於)
- <= (小於或等於)
- >= (大於或等於)
- <> (不等於)
SELECT * FROM Employees
WHERE HireDate >= DateValue(" 10/01/1993")
AND HireDate <= DateValue("12/31/1993");
此查詢會使用 >= 比較運算符和 <= 比較運算符來驗證員工的僱用日期是否落在兩個指定日期的範圍內。 此查詢會擷取 1993 日曆年度最後一季雇用的所有員工記錄。
SELECT * FROM Employees
WHERE HireDate <> Date();
此查詢會使用不等比較運算符來擷取僱用日期不等於目前日期之所有員工的記錄。
WeekdayName () 函式
SELECT WeekdayName (1, False, 1) AS FirstWeekDayName;
WeekdayName () 函式會傳回字串,指出星期幾,如第一個參數中所指定。 傳回的星期幾字串取決於第三個參數。 此參數會設定一周的第一天。 第二個參數設定為 False,以指定不得縮寫工作日名稱。
此範例查詢會傳回值 Sunday 作為一周的第一天。
MonthName () 函式
SELECT MonthName (1) ;
MonthName () 函式會傳回字串,指出從 1 到 12 之指定月份數位的月份名稱。 輸入參數也可以是表達式,如下列查詢所示:
SELECT MonthName ( DatePart (“m”, Date () ) ) ;
此查詢會傳回當月的名稱。
參考資料
如需詳細資訊,請按下列文章編號以檢視 Microsoft 知識庫中的文章: