![Access数据库程序设计](https://wfqqreader-1252317822.image.myqcloud.com/cover/731/31729731/b_31729731.jpg)
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表示要保留的小数位数。例如:
![](https://epubservercos.yuewen.com/7138D4/17180253605311106/epubprivate/OEBPS/Images/img00087001.jpg?sign=1738943148-pvtAqoPDjKas4YtxgJNQnic9EK6pYLZE-0-cce63bc84009392186f3e830765932fa)
6)产生随机数函数
函数格式:Rnd(数值表达式)
返回一个大于等于0小于1之间的随机数。随机数为单精度类型。例如:
![](https://epubservercos.yuewen.com/7138D4/17180253605311106/epubprivate/OEBPS/Images/img00087002.jpg?sign=1738943148-a1w4Epfd23oGHToKKttIUQNrJPpdaA9F-0-490fc11be5e5d3b702cfdbeb40ad303f)
7)符号函数
函数格式:Sgn(数值表达式)
返回数值表达式的符号值,数值表达式为正数时,返回1;数值表达式为负数时,返回-1;数值表达式为0时,返回0。例如:
![](https://epubservercos.yuewen.com/7138D4/17180253605311106/epubprivate/OEBPS/Images/img00088001.jpg?sign=1738943148-ZEPxLewrMQeOoZpe8qD4i2BgpQFaUvAl-0-57ff0cfc49deedcba56c5c0a7bd4ff5c)
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个字符开始起右边所有字符。例如:
![](https://epubservercos.yuewen.com/7138D4/17180253605311106/epubprivate/OEBPS/Images/img00088002.jpg?sign=1738943148-jYAerhSjLpqdlhbhxlN0shzpHox1mP8j-0-e48e2e707ec931ccbc74c19b1b6e3848)
4)生成空格字符函数
函数格式:Space(数值表达式)
返回数值表达式的值所指定的空格字符数。例如:
Space(5)'返回5个空格字符
5)大小写转换函数
函数格式:Ucase(字符串表达式)
将字符串中小写字母转换成大写字母。
函数格式:Lcase(字符串表达式)
将字符串中大写字母转换成小写字母。
例如:
Ucase("aBcDE")'返回值为"ABCDE"
Lcase("aBcDE")'返回值为"abcde"
6)删除空格函数
函数格式:LTrim(字符串表达式)
删除字符串的前导空格。
函数格式:RTrim(字符串表达式)
删除字符串的尾部空格。
函数格式:Trim(字符串表达式)
删除字符串的前导空格和尾部空格。
例如:
![](https://epubservercos.yuewen.com/7138D4/17180253605311106/epubprivate/OEBPS/Images/img00089001.jpg?sign=1738943148-cZR9xaIX72lVDfb7ixM17uNpk0W4mvHd-0-975f5bef3a26681f91a6cc5e9dabc39e)
3.日期/时间函数
1)获取系统日期和时间函数
函数格式:Date()
返回当前系统日期。
函数格式:Time()
返回当前系统时间。
函数格式:Now()
返回当前系统日期和时间。
例如:
![](https://epubservercos.yuewen.com/7138D4/17180253605311106/epubprivate/OEBPS/Images/img00089002.jpg?sign=1738943148-ieRs2DUMza26KUhCKlJOXtUxlABaNora-0-9d46bf1da60448d6405bfdaf2d0a4197)
2)截取日期分量函数
函数格式:Year(日期表达式)
返回日期表达式表示年份的整数。
函数格式:Month(日期表达式)
回日期表达式表示月份的整数。
函数格式:Day(日期表达式)
返回日期表达式表示日期的整数。
函数格式:Weekday(日期表达式)
返回日期表达式表示的日期是星期几。该函数的返回值为1~7,默认情况下,1表示星期天,2表示星期一,3表示星期二……
例如:
![](https://epubservercos.yuewen.com/7138D4/17180253605311106/epubprivate/OEBPS/Images/img00089003.jpg?sign=1738943148-GJnYsvICseUlYewMd9a4Ud6M8mrgkWn0-0-d81abbb8cf9ffaf0acbc8a035f826b3f)
3)截取时间分量函数
函数格式:Hour(时间表达式)
返回时间表达式表示小时的整数。
函数格式:Minute(时间表达式)
返回时间表达式表示分钟的整数。
函数格式:Second(时间表达式)
返回时间表达式表示秒的整数。
例如:
![](https://epubservercos.yuewen.com/7138D4/17180253605311106/epubprivate/OEBPS/Images/img00090002.jpg?sign=1738943148-3gYDmYKQxpmsNGDUKYPv6R7CCfyMVJvd-0-1752b4f40d3b1edde5a164c9660c6f84)
4)日期/时间增加或减少一个时间间隔函数
函数格式:DateAdd(间隔类型,间隔值,日期表达式)
对日期表达式按照间隔类型增加或减少指定的时间间隔值。间隔类型为一个字符串,其值的设定如表3.4所示。间隔值可以为正数或负数。
表3.4 “间隔类型”值
![](https://epubservercos.yuewen.com/7138D4/17180253605311106/epubprivate/OEBPS/Images/img00090003.jpg?sign=1738943148-1ttpMQWywrKyErTw4BZXwOtdjCsea51L-0-259f39a3bd02e55ef70e3c72a4d8a8f1)
例如:
![](https://epubservercos.yuewen.com/7138D4/17180253605311106/epubprivate/OEBPS/Images/img00090004.jpg?sign=1738943148-nU6JXlUDPqOCSuTZuYm18dLTZm8BrTae-0-c94dc4dbebba7c6cef2e8bbde613ed48)
5)计算两个日期之间的时间间隔函数
函数格式:DateDiff(间隔类型,日期表达式1,日期表达式2)
返回日期表达式1和日期表达式2之间按照时间间隔类型所指定的时间间隔数量。注意,间隔类型为一个字符串,其值的设定见表3.4。
例如:
![](https://epubservercos.yuewen.com/7138D4/17180253605311106/epubprivate/OEBPS/Images/img00090005.jpg?sign=1738943148-lCG8MO17cEDYqfKQHeD6BVZK4wkpt5DI-0-6404603a4cbf9e41af70466f2d8572e2)
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两个数中的最大数