Access 中的 DateDiff 函数(指定两个指定的日期之间的时间间隔数)
适用于: Microsoft Office Access 2007
返回变量型(长型),指定两个指定的日期之间的时间间隔数。
语法
DateDiff(interval, date1, date2 [, firstdayofweek] [, firstweekofyear] )
DateDiff 函数的语法包含以下参数:
参数 | 说明 |
---|---|
interval | 必选。字符串表达式,该表达式为用于计算 date1 和 date2 之间的差的时间间隔。 |
date1, date2 | 必选。变量型(日期型)。表示两个要用于计算的日期。 |
firstdayofweek | 可选。常量,指定一周的第一天。如果不指定,则默认为星期日。 |
firstweekofyear | 可选。常量,指定一年的第一周。如果不指定,则第一周默认为 1 月 1 日所在的周。 |
设置
interval 参数包含以下设置:
设置 | 说明 |
---|---|
yyyy | 年 |
q | 季度 |
m | 月 |
y | 某年的某一天 |
d | 天 |
w | 工作日 |
ww | 周 |
h | 时 |
n | 分 |
s | 秒 |
firstdayofweek 参数包含以下设置:
常量 | 值 | 说明 |
---|---|---|
vbUseSystem | 0 | 使用 NLS API 设置。 |
vbSunday | 1 | 星期日(默认) |
vbMonday | 2 | 星期一 |
vbTuesday | 3 | 星期二 |
vbWednesday | 4 | 星期三 |
vbThursday | 5 | 星期四 |
vbFriday | 6 | 星期五 |
vbSaturday | 7 | 星期六 |
常量 | 值 | 说明 |
---|---|---|
vbUseSystem | 0 | 使用 NLS API 设置。 |
vbFirstJan1 | 1 | 从 1 月 1 日所在的周开始(默认)。 |
vbFirstFourDays | 2 | 从至少包含新年中四天的第一周开始。 |
vbFirstFullWeek | 3 | 从一年的第一个全周开始。 |
注解
可以使用 DateDiff 函数确定在两个日期之间存在多少指定的时间间隔。例如,可以使用 DateDiff 计算两个日期之间的天数或今天到年末之间的周数。
若要计算 date1 和 date2 之间的天数,可以使用“某年的某一天”(“y”) 或“天”(“d”)。当interval 为“工作日”(“w”) 时,DateDiff 返回两个日期之间的周数。如果 date1 为星期一,则 DateDiff 会计算 date2 之前的星期一的个数。它会将 date2 计算在内,但不会将 date1 计算在内。但是,如果 interval 为“周”(“ww”),DateDiff 函数将返回两个日期之间的日历周数。它会计算 date1 和 date2 之间的星期日的个数。如果 date2为星期日,则 DateDiff 会将其计算在内;但即使 date1 为星期日,也不会将其计算在内。
如果 date1 引用了比 date2 晚的时间点,则 DateDiff 函数返回一个负数。
firstdayofweek 参数会影响使用“w”和“ww”间隔符号的计算。
如果 date1 或 date2 为日期文本,则指定的年会成为日期的永久部分。但是,如果date1 或 date2 括在双引号 (" ") 中,并且省略了年份,则每次计算 date1 或 date2表达式时,当前年份都会插入代码中。这样即可编写用于不同年份的代码。
将 12 月 31 日与来年的 1 月 1 日相比较时,对于“年”("yyyy"),即使仅过去一天,DateDiff 也返回 1。
注释 对于 date1 和 date2,如果 Calendar 属性设置为公历,则提供的日期必须为公历。如果日历为回历,则提供的日期必须为回历。
示例
在表达式中使用 DateDiff 函数 在任何可以使用表达式的地方都可以使用 DateDiff函数。例如,假定您具有一个用来履行客户订单的窗体。在“订单 (Orders)”表中,有一个名为“到货日期 (ReceiveBefore)”的字段,其中包含客户需要接收所订货物的日期。您可以使用 DateDiff 函数以及窗体上的文本框显示到必须送货的日期所剩余的天数。
假定送货需要十天时间,则可如下设置文本框的“控件来源”属性:
=DateDiff(“d”, Now(), [Orders].[ReceiveBefore])-10
在窗体视图中打开窗体时,文本框会显示到必须送货的日期前剩余的天数。如果到客户需要收货的日期的天数少于 10 天,则文本框中的数字为负数,指示如果立即送货客户收货时间的延迟天数。
在 VBA 代码中使用 DateDiff 函数
注释 以下示例演示了此功能在 Visual Basic for Applications (VBA) 模块中的使用。有关使用 VBA 的详细信息,请在“搜索”旁边的下拉列表中选择“开发人员参考”,然后在搜索框中输入一个或多个词条。
以下示例使用 DateDiff 函数显示给定日期和今天之间的天数。
Dim TheDate As Date ' Declare variables.
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg
摘自:http://office.microsoft.com/zh-cn/access/HA012288112052.aspx