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两个数中的最大数