ACCESS 日期函數 常用函數

来源:互联网 发布:vscode好看的字体 编辑:程序博客网 时间:2024/05/02 14:50

1、在查询中格式化输出日期 
Format(date(), "yyyy-mm-dd") 

2、计算两个日期的差值 
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]]) 

3、日期加上一段时间 
DateAdd(interval, number, date) 

4、取得日期的一部分 
DatePart(interval, date[,firstdayofweek[, firstweekofyear]]) 

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 星期六 

firstweekofyear 参数的设定值如下: 
常数 值 描述 
vbUseSystem 0 使用 NLS API 设置。 
vbFirstJan1 1 从包含 1 月 1 日的星期开始(缺省值)。 
vbFirstFourDays 2 从第一个其大半个星期在新的一年的一周开始。 
vbFirstFullWeek 3 从第一个无跨年度的星期开始。

更多可以參考http://support.microsoft.com/kb/210604/zh-cn

  • 当前月份:
    DateSerial(Year(Date()), Month(Date()), 1)
  • 下一个月:
    DateSerial(Year(Date()), Month(Date()) + 1, 1)
  • 当前月份的最后一天:
    DateSerial(Year(Date()), Month(Date()) + 1, 0)
  • 下一个月的最后一天:
    DateSerial(Year(Date()), Month(Date()) + 2, 0)
  • 上一个月的第一天:
    DateSerial(Year(Date()), Month(Date())-1,1)
  • 上一个月的最后一天:
    DateSerial(Year(Date()), Month(Date()),0)
  • 当前季度的第一天:
    DateSerial(Year(Date()), Int((Month(Date()) - 1) / 3) * 3 + 1, 1)
  • 当前季度的最后一天:
    DateSerial(Year(Date()), Int((Month(Date()) - 1) / 3) * 3 + 4, 0)
  • 当前星期的第一天(假定星期日 = 第 1 天):
    Date() - WeekDay(Date()) + 1
  • 当前星期的最后一天:
    Date() - WeekDay(Date()) + 7
  • 当前星期的第一天(使用“选项”对话框中的设置):
    Date() - WeekDay(Date(), 0) + 1
  • 当前星期的最后一天:
    Date() - WeekDay(Date(), 0) + 7



名称

格式

功能

备注

取整函数

INT (<数值表达式>)

取“数值表达式”值的整数部分值

 

截取左子串函数

LEFT(<字符串表达式>,<数值表达式>)

从“字符串表达式”左侧第1个字符开始,截取“数值表达式”值个字符。

 

截取右子串函数

RIGHT(<字符串表达式>,<数值表达式>)

从“字符串表达式”的最右端的第1个字符开始,截取“数值表达式”值个字符

 

测试字符串长度函数

LEN(<字符串表达式>)

返回“字符串表达式”的字符个数。

注意是字符的个数

系统日期函数

DATE()

返回当前系统日期

 

年函数

YEAR(<日期表达式>)

返回年的四位整数。

 

月函数

MONTH(<日期表达式>)

返回1~12之间的整数,表示一年的某月

 

返回日期指定部分函数

DatePart(interval, date)

返回给定日期的指定部分

返回年份的话要用“yyyy”,四位;m为月,d为天

指定日期间隔函数

DateAdd(interval, number, date)

将指定日期加上某个时间间隔

 

判断日期间隔函数

DateDiff (interval,date1,date2)

判断两个日期之间的间隔

大日期在后面,小日期在前

 

 

1.Cdate(日期表达式)

将日期表达式转换成日期类型的数据。

日期表达式是任何可以解释成日期的表达式,包含日期文字,可以看作日期的字符串以及从函数返回的日期。

比如:myDate = CDate("99-5-20") ,这样的日期表达式必须加双引号,否则结果不可预料。

CDate 依据系统上的区域设置来决定日期的格式。如果提供的格式为不可识别的日期设置,则不能正确判断年、月、日的顺序。

 

2.Now()

返回当前计算机系统设置的日期和时间。

 

3.Year(日期表达式)

返回表示年份的整数。

比如:Year("00-6-15") = 2000

 

4.Month(日期表达式)

返回 1 到 12 之间的整数,表示一年中的某月。

比如:Month("00-6-15") = 6

 

5.DateAdd(interval, number, date)

DateAdd 函数语法中有下列命名参数:

部分 描述

interval 必要。字符串表达式,是所要加上去的时间间隔。

number 必要。数值表达式,是要加上的时间间隔的数目。其数值可以为正数(得到未来的日期),也可以为负数(得到过去的日期)。

date 必要。Variant (Date) 或表示日期的文字,这一日期还加上了时间间隔。

设置 interval 参数具有以下设定值:

设置 描述

yyyy 年

q 季

m 月

y 一年的日数

d 日

w 一周的日数

ww 周

h 时

n 分钟

s 秒

说明

可以使用 DateAdd 函数对日期加上或减去指定的时间间隔。

例如,可以用 DateAdd 来计算距今天为三十天的日期;或者计算距现在为 45 分钟的时间。

为了对 date 加上“日”,可以使用“一年的日数” (“y”),“日” (”d”) 或“一周的日数” (”w”)。

DateAdd 函数将不返回有效日期。在以下实例中将 1 月31 日加上一个月:

DateAdd(m, 1, 31-Jan-95)

上例中,DateAdd 返回 1995 年 2 月 28 日,而不是 1995 年 2 月 31 日。

如果 date 是 1996 年 1 月 31 日,则由于 1996 年是闰年,返回值是 1996 年 2 月 29 日。

如果计算的日期超前 100 年(减去的年度超过 date 中的年份),就会导致错误发生。

如果 number 不是一个 Long 值,则在计算时取最接近的整数值来计算。

注意 DateAdd 返回值的格式由 Control Panel设置决定,而不是由传递到date 参数的格式决定。

事例:

DateAdd("d",10,"2000-6-18")

结果是: 2000-06-28

DateAdd("m",-1,"2000-6-18")

结果是: 2000-05-18

 

6、DateDiff 函数

返回 Variant (Long) 的值,表示两个指定日期间的时间间隔数目。

语法 DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])

DateDiff 函数语法中有下列命名参数:

部分 描述

interval 必要。字符串表达式,表示用来计算date1 和 date2 的时间差的时间间隔

Date1□date2 必要;Variant (Date)。计算中要用到的两个日期。

Firstdayofweek 可选。指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。

firstweekofyear 可选。指定一年的第一周的常数。如果未予指定,则以包含 1 月 1 日的星期为第一周。

interval 参数的设定值同DateAdd函数,请参考上面的例子。

例:DateDiff("d",#2004-01-06#,#2004-01-07#) 1

 

7、DatePart 函数

返回一个包含已知日期的指定时间部分的 Variant (Integer)。

语法 DatePart(interval, date[,firstdayofweek[, firstweekofyear]])

DatePart 函数语法中有下列命名参数:

部分 描述

interval 必要。字符串表达式,是要返回的时间间隔。

date 必要。要计算的 Variant (Date) 值。

Firstdayofweek 可选。指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。

firstweekofyear 可选。指定一年第一周的常数。如果未予指定,则以包含 1 月 1 日的星期为第一周。

设置

interval 参数的设定值同DateAdd()

DatePart 函数示例本示例先取得一个日期,然后使用 DatePart 函数显示该日期是发生在该年的哪一季。

Dim TheDate As Date ' 声明变量。

Dim Msg

T

 

12、Time 函数

返回一个指明当前系统时间的 Variant (Date)。

语法

Time

示例

使用 Time 函数返回系统当前的时间。

Dim MyTimeMyTime = Time    ' 返回系统当前的时间

说明

为了设置系统时间,请使用 Time 语句。

设置系统时间。

语法

Time = time

必要的 time 参数,可以是任何能够表示时刻的数值表达式、字符串表达式或它们的组合。

说明

如果 time 是一字符串,则 Time 会试着根据系统指定的时间,利用时间分隔符将其转换成一个时间。如果无法转换成一个有效的时间,则会导致错误发生。

 

13、FormatDateTime函数

描述

返回一个日期或时间格式的表达式。

语法

FormatDateTime(Date[,NamedFormat])

FormatDateTime函数语法有如下几部分:

部分 描述

Date 必需的。要被格式化的日期表达式

NamedFormat可选的。数字值,表示日期/时间所使用的格式。如果忽略该值,则使用vbGeneralDate。

设置值

NamedFormat参数的设置值如下:

常数 值 描述

vbGeneralDate 0 显示日期和/或时间。如果有日期部分,则用短日期格式显示。如果有时间部分,则用长时间格式显示。如果都有,两部分都显示。

VbLongDate 1 用计算机区域设置值中指定的长日期格式显示日期。

VbShortDate 2 用计算机区域设置值中指定的短日期格式显示日期。

 

18、用户自定义日期/时间格式 (Format 函数)

下面标识一些可用来创建用户自定义日期/时间格式的字符:

字符     说明

(:)    时间分隔符。在一些区域,可能用其他符号来当时间分隔符。格式化时间值时,时间分隔符可以分隔时、分、秒。时间分隔符的真正字符在格式输出时取决于系统的设置。

(/)    日期分隔符。在一些区域,可能用其他符号来当日期分隔符。格式化日期数值时,日期分隔符可以分隔年、月、日。日期分隔符的真正字符在格式输出时取决于系统设置。

c    以 ddddd 来显示日期并且以 ttttt 来显示时间。如果想显示的数值无小数部分,则只显示日期部分,如果想显示的数值无整数部分,则只显示时间部分。

d    以没有前导零的数字来显示日 (1–31)。

dd   以有前导零的数字来显示日 (01–31)。

ddd 以简写来表示日 (Sun–Sat)

dddd 以全称来表示日 (Sunday–Saturday)

ddddd 以完整日期表示法显示(包括年、月、日),日期的显示要依系统的短日期格式设置而定。

dddddd 以完整日期表示法显示日期系列数(包括年、月、日),日期的显示要依系统识别的长日期格式而定。缺省的长日期格式为 mmmm

dd, yyyy。

aaaa 与dddd 一样,它只是该字符串的本地化版本。

w 将一周中的日期以数值表示(1 表星期日~ 7表星期六)。

ww 将一年中的星期以数值表示 (1–54)。

m 以没有前导零的数字来显示月 (1–12)。如果 m 是直接跟在 h 或 hh 之后,那么显示的将是分而不是月。

mm 以有前导零的数字来显示月 (01 – 12)。如果m是直接跟在h或hh之后,那么显示的将是分而不是月。

mmm 以简写来表示月 (Jan–Dec)。

mmmm 以全称来表示月 (January–December)。

oooo 与mmmm一样,它只是该字符串的本地化版本。

q 将一年

 

如何将文本型:2003.08.04 转换为日期型:2003-08-04

cdate(replace("2003.08.04",".","-"))

显示当前日期在该年中所处的星期号

=Format(Now(), "ww")

ww 为 1 到 53。

显示日期字段值的四位年份值。

=DatePart("yyyy", [订购日期])

显示日期字段值前 10 天的日期值。

=DateAdd("y", -10, [应付日期])

显示日期字段值前一个月的日期值。

=DateAdd("m",-1,Date())

显示日期1和日期2之间相差的天数。

=DateDiff("d", [订购日期], [发货日期])

从今天算起到三个月后的日期之间的记录。

Betweeb date() and adddate(3,date())

根据出生日期计算年龄(周岁)

=IIf(Month(Date())-Month([出生年月日])>-1,Year(Date())-Year([出生年月日]),Year(Date())-Year([出生年月日])-1)

 

日期函数示例

当天日期:=Date()

当日:=Day(date)

当月:=Month(date())

当年:=Year(date())

当季:=DatePart("q",Date())

 

算出每个月的天数

一法:

Dim a, b, c

a = Year(Now())

b = Month(Now())

c = Format((a & "/" & b + 1 & "/1"), "######") - Format((a & "/" & b & "/1"), "######")

二法:

DateDiff("d", Format(Date, "yyyy-mm-01"), Format(DateAdd("m", -1, Date), "yyyy-mm-01"))

DateDiff可以算出两个日期之间相差几天!

三法:

Day(DateAdd("d", -1, Format(Date, "yyyy-mm-01")))

day函数可以知道某个日期是这个月的第几天,我们把这个月的最后一天拿出来DAY一下!

应该还有更好的方法!

比如说可以定义一个数组,把每个月的日子放进去,或者说写一个函数算每一个月的天数

只要考虑一下闺年的问题就可以了!

如何得到某年每个月的第一天是星期几

Private Sub Command1_Click()

Dim i As Integer, A As Integer, B As Integer, C As String

A = InputBox("请输入年份", "某年每个月的第一天是星期几")

Form1.Cls

For i = 1 To 12

C = A & "-" & i & "-1"

B = Weekday(C)

Select Case B

Case vbSunday

Print A & "年" & i & "月1日是 星期日"

Case vbMonday

Print A & "年" & i & "月1日是 星期一"

Case vbTuesday

Print A & "年" & i & "月1日是 星期二"

Case vbWednesday

Print A &a