Access数据库程序设计
上QQ阅读APP看书,第一时间看更新

3.2.3 查询中的函数

在Access中提供了大量的标准函数,这些函数是设计查询条件时不可或缺的组成部分。利用这些函数为更好地表示查询条件提供了方便,也为查询中进行数据的统计、计算和处理提供了方便有效的方法。

标准函数的使用格式如下:

函数名称(参数1,参数2,参数3,……)

其中,函数名称必不可少,函数名称用来表示函数的功能。函数的参数放在函数后的小括号中,参数可以是常量或表达式,可以有一个或多个,少数函数没有参数,为无参函数。每个函数执行时,都会有一个返回值。查询中常用函数包括算术函数、字符函数、日期/时间函数和条件函数等。

1.算术函数

1)绝对值函数

函数格式:Abs(数值表达式)

返回数值表达式的绝对值。例如:

Abs(-10)'  返回值为10

2)开平方函数

函数格式:Sqr(数值表达式)

返回数值表达式的平方根。例如:

Sqr(25)  '返回值为5

3)向下取整函数

函数格式:Int(数值表达式)

返回不大于数值表达式的最大整数。例如:

Int(4.7)  '返回值为4

Int(-4.7)  '返回值为-5

4)取整函数

函数格式:Fix(数值表达式)

返回数值表达式的整数部分。例如:

Fix(4.7)  '返回值为4

Fix(-4.7)  '返回值为-4

5)四舍五入函数

函数格式:Round(数值表达式,N)

返回按照指定小数位数进行四舍五入后的结果。N表示要保留的小数位数。例如:

6)产生随机数函数

函数格式:Rnd(数值表达式)

返回一个大于等于0小于1之间的随机数。随机数为单精度类型。例如:

7)符号函数

函数格式:Sgn(数值表达式)

返回数值表达式的符号值,数值表达式为正数时,返回1;数值表达式为负数时,返回-1;数值表达式为0时,返回0。例如:

2.字符函数

1)字符串检索函数

函数格式:InStr([Start],字符串表达式1,字符串表达式2,[Compare])

检索字符串2在字符串1中第一次出现的位置,返回一个整型数。方括号内的参数Start和Compare为可选参数。Start表示在字符串1中检索的起始位置。Compare表示字符串的检索方式,其值可以为0、1和2。值为0(默认)作二进制比较,值为1表示不区分大小的文本比较,值为2表示基于数据库中包含信息的比较。

注意:如果字符串1的长度为0,或字符串2检索不到,则返回值为0。如果字符串2的串长度为0,返回Start的值。例如:

n=InStr("abcdab","ab")  '返回值为1

n= InStr(3,"ABcdab","ab",1)  '返回值为5

2)字符串长度检测函数

函数格式:Len(字符串表达式)

返回字符串所含字符数量。例如:

Len("Access")  '返回值为6

Len("数据库管理")  '返回值为5

3)字符串截取函数

函数格式:Left(字符串表达式,N)

从字符串左边第一个字符开始向右边截取N个字符。

函数格式:Right(字符串表达式,N)

截取字符串右边最后N个字符。

函数格式:Mid(字符串表达式,N1,N2)

从字符串中间第N1个字符开始向右边截取N2个字符。

注意:对于Left和Right函数,如果N值为0,则返回0长度的字符串;如果N的值大于或等于字符串的字符数,则返回整个字符串。对于Mid函数,如果N1值大于字符串的字符数则返回0长度字符串;如果省略N2,则返回字符串中左边第N1个字符开始起右边所有字符。例如:

4)生成空格字符函数

函数格式:Space(数值表达式)

返回数值表达式的值所指定的空格字符数。例如:

Space(5)'返回5个空格字符

5)大小写转换函数

函数格式:Ucase(字符串表达式)

将字符串中小写字母转换成大写字母。

函数格式:Lcase(字符串表达式)

将字符串中大写字母转换成小写字母。

例如:

Ucase("aBcDE")'返回值为"ABCDE"

Lcase("aBcDE")'返回值为"abcde"

6)删除空格函数

函数格式:LTrim(字符串表达式)

删除字符串的前导空格。

函数格式:RTrim(字符串表达式)

删除字符串的尾部空格。

函数格式:Trim(字符串表达式)

删除字符串的前导空格和尾部空格。

例如:

3.日期/时间函数

1)获取系统日期和时间函数

函数格式:Date()

返回当前系统日期。

函数格式:Time()

返回当前系统时间。

函数格式:Now()

返回当前系统日期和时间。

例如:

2)截取日期分量函数

函数格式:Year(日期表达式)

返回日期表达式表示年份的整数。

函数格式:Month(日期表达式)

回日期表达式表示月份的整数。

函数格式:Day(日期表达式)

返回日期表达式表示日期的整数。

函数格式:Weekday(日期表达式)

返回日期表达式表示的日期是星期几。该函数的返回值为1~7,默认情况下,1表示星期天,2表示星期一,3表示星期二……

例如:

3)截取时间分量函数

函数格式:Hour(时间表达式)

返回时间表达式表示小时的整数。

函数格式:Minute(时间表达式)

返回时间表达式表示分钟的整数。

函数格式:Second(时间表达式)

返回时间表达式表示秒的整数。

例如:

4)日期/时间增加或减少一个时间间隔函数

函数格式:DateAdd(间隔类型,间隔值,日期表达式)

对日期表达式按照间隔类型增加或减少指定的时间间隔值。间隔类型为一个字符串,其值的设定如表3.4所示。间隔值可以为正数或负数。

表3.4 “间隔类型”值

例如:

5)计算两个日期之间的时间间隔函数

函数格式:DateDiff(间隔类型,日期表达式1,日期表达式2)

返回日期表达式1和日期表达式2之间按照时间间隔类型所指定的时间间隔数量。注意,间隔类型为一个字符串,其值的设定见表3.4。

例如:

6)返回包含指定年月日的日期函数

函数格式:DateSerial(数值表达式1,数值表达式2,数值表达式3)

返回由数值表达式1为年、数值表达式2为月、数值表达式3为日组成的日期值。其中,数值表达式1~3为整数数值。例如:

DateSerial(2010,2,29)  '返回值为#2010-3-1#

DateSerial(2018-1,6+1,0)  '返回值为#2017-6-30#

4.条件函数

函数格式:iif(条件表达式,表达式1,表达式2)

如果条件表达式的值为真,函数返回值为表达式1。如果条件表达式的值为假,函数返回值为表达式2。例如:

iif(a>b,a,b)  '求a和b两个数中的最大数