如何使用 Access 中的函数和运算符更改日期

本文适用于 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 支持工程师可以帮助解释特定过程的功能。 但是他们不会修改这些示例以提供额外的功能,也不会构建过程以满足您的特定要求。

Date () 函数、Now () 函数和 Format () 函数

SELECT 日期 () ,现在 () ;

Date () 函数以短日期格式返回当前日期。 Now () 函数返回带有时间的当前日期。

SELECT 格式 (现在 () ,“dd mmmm yyyy”) ;

可以将 Format () 函数与日期值结合使用,以指定要用于日期的日期格式。 此示例查询以长日期格式返回当前日期 (2003 年 12 月 1 日) 。

Day () 函数、WeekDay () 函数、Month () 函数和 Year () 函数

adoc
SELECT HireDate, Day(HireDate) AS Day,
Weekday(HireDate) AS WeekDay,
Month(HireDate) AS Month, Year(HireDate) AS Year 
FROM Employees;

从“员工”表中,此查询返回雇用日期、雇用日期、雇用周日期、雇用月份和每个员工的雇用年份。 请注意,WeekDay () 函数返回一个指示星期几的数值。

DatePart () 函数

adoc
SELECT *  FROM Employees
WHERE DatePart("yyyy", BirthDate) < 1960;

从 Employees 表中,此查询返回 1960 年之前出生的所有员工。 DatePart () 函数可用于提取指定日期的部分,例如日期、月份或年份。

DateDiff () 函数

adoc
SELECT EmployeeID, FirstName, BirthDate,
DateDiff("yyyy", BirthDate, Date()) AS Age
FROM Employees;

从 Employees 表中,此查询返回员工 ID、名字、出生日期和每个员工的年龄。 DateDiff () 函数返回两个指定日期值 (日、月、年或时间单位(如小时、分钟和秒) )之间的差异或时间滞后时间。

DateAdd () 函数

adoc
SELECT EmployeeID, FirstName, HireDate,
DateAdd("yyyy", 10, HireDate)
FROM Employees;

从 Employees 表中,此查询返回员工 ID、名字、雇用日期以及员工在公司完成 10 年服务日期。 DateAdd () 函数按指定的时间单位数(如天、月或年)递增日期,然后返回结果值。

可以直接将数值添加到日期值。 这样做可按天递增日期值,如以下示例所示:

SELECT 日期 () + 1 ;

此查询将当前日期递增一天,然后返回生成的日期值。

DateValue () 函数

SELECT DateValue ("20 Nov 2003") AS ValidDate;

DateValue () 函数验证输入字符串是否为有效日期。 如果输入字符串被识别为有效日期,则以短日期格式返回该日期。 如果输入字符串未识别为有效日期,则返回语句“条件表达式中的数据类型不匹配”。 DateValue () 函数可识别各种日期格式,例如 mm dd yyyy、dd mm yyyy、dd mmm yyyy 和 dd mmm yyyyy hh:mm:ss 长日期格式。

DateSerial () 函数

SELECT DateSerial ( 2003, 03, 1-1) ;

DateSerial () 函数返回指定输入参数的年份、月份和日期的日期值。 输入参数可以是涉及算术运算的表达式。 DateSerial () 函数在返回结果日期值之前计算输入参数中的表达式。

此示例查询返回 2003 年 2 月的最后一天。 值为 1 的日期的最后一个输入参数将递减 1。 结果是,month 参数的计算结果为 2。

对日期值使用比较运算符

可以使用以下比较运算符来比较表达式和查询中的日期值:

  • < (小于)
  • > (大于)
  • <= (小于或等于)
  • >= (大于或等于)
  • <> (不等于)
adoc
SELECT * FROM Employees
WHERE HireDate >= DateValue(" 10/01/1993")
AND HireDate <= DateValue("12/31/1993");

此查询使用 >= 比较运算符和 <= 比较运算符来验证员工的雇用日期是否在两个指定日期的范围内。 此查询提取 1993 日历年最后一个季度雇用的所有员工的记录。

adoc
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 () ) ) ;

此查询返回当前月份的名称。

References

有关详细信息,请单击以下文章编号以查看 Microsoft 知识库中的文章:

  • 290178 如何创建具有参数的查询来评估 Microsoft Access 中的复杂条件
  • 290190 如何在 Microsoft Access 中创建两个函数来计算月和年龄