Access 数据库日期计算指南
在 Microsoft Access 中,日期计算主要依赖于内置的日期函数,这些函数可以在查询(Query)、窗体(Form)、报表(Report)以及 VBA 代码中广泛使用。
核心日期函数详解
获取当前日期和时间
Date():返回当前的系统日期(不含时间)。Now():返回当前的系统日期和时间。Time():返回当前的系统时间。
日期加减:DateAdd 函数
用于在指定日期上增加或减少特定的时间间隔。
- 语法:
DateAdd("间隔单位", 数值, 日期) - 常用间隔单位:
"yyyy":年"m":月"d":日"ww":周"n":分(注意:m 是月,n 是分)

- 示例:
- 计算 30 天后的日期:
DateAdd("d", 30, [订单日期]) - 计算 1 年前的日期:
DateAdd("yyyy", -1, Date())
- 计算 30 天后的日期:
计算日期差值:DateDiff 函数
用于计算两个日期之间的时间差。
- 语法:
DateDiff("间隔单位", 开始日期, 结束日期) - 示例:
- 计算两个日期相差的天数:
DateDiff("d", [开始日期], [结束日期]) - 计算员工入职年限:
DateDiff("yyyy", [入职日期], Date())
- 计算两个日期相差的天数:
提取日期部分:DatePart 函数
用于从日期中提取特定的部分(如年、月、日、星期)。
- 语法:
DatePart("间隔单位", 日期) - 示例:
- 提取月份:
DatePart("m", [订单日期]) - 提取该日期是当年的第几周:
DatePart("ww", [订单日期])
- 提取月份:
构建日期:

DateSerial
函数

DateSerial
通过年、月、日三个整数构建一个有效的日期。
- 语法:
DateSerial(年, 月, 日) - 示例:
- 创建 2026 年 1 月 1 日的日期:
DateSerial(2026, 1, 1)
- 创建 2026 年 1 月 1 日的日期:
常见应用场景实战
计算年龄或工龄
在查询中创建计算字段,计算从出生日期到今天的年数:
- 表达式:
年龄: DateDiff("yyyy", [出生日期], Date()) - 注意:
DateDiff仅计算年份差,若需精确到天(判断是否过了生日),建议结合DateAdd校验。
计算到期提醒(逾期天数)
计算当前日期距离截止日期的天数,正数为未到期,负数为已逾期:
- 表达式:
状态: DateDiff("d", Date(), [截止日期])
筛选特定日期范围
在查询的“条件”行中使用,筛选最近 30 天的数据:
- 条件

:
>= Date() - 30或>= DateAdd("d", -30, Date())
计算本月第一天和最后一天
- 本月第一天:
DateSerial(Year(Date()), Month(Date()), 1) - 本月最后一天:
DateSerial(Year(Date()), Month(Date()) + 1, 0)(利用 0 日即为上月最后一天的特性)
重要注意事项
- 日期格式:在 SQL 语句中手动输入日期时,必须使用 号包裹,
#2026-12-31#。 - 空值处理:如果日期字段可能为空(Null),建议使用
Nz()函数避免计算报错。- 示例:
DateDiff("d", Nz([开始日期], Date()), Date())
- 示例:
- 性能建议:在大型数据集的查询条件中,尽量避免在索引字段上使用函数(
Where Year([日期]) = 2026),这会导致索引失效,建议使用范围查询:Where [日期] >= #2026-01-01# And [日期] <= #2026-12-31#。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复