本文适用于 Microsoft Access 数据库 (.mdb) 文件或 Microsoft Access 数据库 (.accdb) 文件,以及 Microsoft Access 项目 (.adp) 文件。
中等:需要基本的宏、编码和互操作性技能。
本文介绍 Microsoft Office Access 2007、Microsoft Office Access 2003 和 Microsoft Access 2002 中提供的函数和运算符。 可以使用函数和运算符使用示例查询更改日期/时间数据类型。 可用于更改日期值的示例查询使用 Northwind.mdb 示例数据库中的表。
Access 2007 的 Northwind 示例数据库不使用与早期版本的 Northwind 示例数据库相同的字段。 在 Access 2007 的 Northwind 示例数据库中,Employees 表中没有 HireDate 和 BirthDate 字段。 EmployeeID 字段已重命名 ID,FirstName 字段已重命名为“名字”。
Access 提供用于验证或更改日期/时间数据类型的字段的运算符和函数。 以下示例查询使用 Access 中可用的日期操作、计算函数和比较运算符。
Microsoft 提供的编程示例仅用于进行说明,而不提供明示或默示担保。 这包括但不限于适销性或对特定用途的适用性的默示担保。 本文假设您熟悉正在演示的编程语言和用于创建和调试过程的工具。 Microsoft 支持工程师可以帮助解释特定过程的功能。 但是他们不会修改这些示例以提供额外的功能,也不会构建过程以满足您的特定要求。
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;
从“员工”表中,此查询返回 1960 年以前出生的所有员工。 DatePart () 函数可用于提取指定日期的部分,例如日期、月份或年份。
DateDiff () 函数
SELECT EmployeeID, FirstName, BirthDate,
DateDiff("yyyy", BirthDate, Date()) AS Age
FROM Employees;
在“员工”表中,此查询返回员工 ID、名字、出生日期和每个员工的年龄。 DateDiff () 函数返回两个指定日期值之间的差值或时间延迟 (天、月、年或时间单位,例如小时、分钟和秒) 。
DateAdd () 函数
SELECT EmployeeID, FirstName, HireDate,
DateAdd("yyyy", 10, HireDate)
FROM Employees;
在“员工”表中,此查询将返回员工 ID、名字、雇用日期以及员工在公司完成 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 长日期格式。
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,指定不得缩写工作日名称。
此示例查询返回值星期日作为一周的第一天。
MonthName () 函数
SELECT MonthName (1) ;
MonthName () 函数返回一个字符串,该字符串指示指定月号的月号从 1 到 12。 输入参数也可以是表达式,如以下查询所示:
SELECT MonthName ( DatePart (“m”, Date () ) ) ;
此查询返回当前月份的名称。
有关详细信息,请单击以下文章编号以查看 Microsoft 知识库中的文章:
290178 如何创建具有参数的查询,以评估 Microsoft Access 中的复杂条件
290190 如何在 Microsoft Access 中创建两个函数来计算月和年份的年龄