![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=1739147337-zSNEIfyJU3uMQrT2V5RVsHrqHgtlu2M4-0-8219d73bfd2419aff725f265b629b6ea)
6)产生随机数函数
函数格式:Rnd(数值表达式)
返回一个大于等于0小于1之间的随机数。随机数为单精度类型。例如:
![](https://epubservercos.yuewen.com/7138D4/17180253605311106/epubprivate/OEBPS/Images/img00087002.jpg?sign=1739147337-aT20nEEJXLh6swGJuhaDKCqMHFDesNQm-0-a33d834feae55c22dd939890543322b8)
7)符号函数
函数格式:Sgn(数值表达式)
返回数值表达式的符号值,数值表达式为正数时,返回1;数值表达式为负数时,返回-1;数值表达式为0时,返回0。例如:
![](https://epubservercos.yuewen.com/7138D4/17180253605311106/epubprivate/OEBPS/Images/img00088001.jpg?sign=1739147337-lMpXtoCl8nWYgUa1fxCaA5JGI1X0GRg1-0-eec82b9f7bd74b8b7d61544244e80e39)
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=1739147337-wWwIf57u78CXqGyzBzzSGu70XDU2Efmc-0-27c74090fa0eded35f6e38f93a5663dc)
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=1739147337-jdEeZ8pcT1HfgPkQyWDBV2KozPv3pF4D-0-0ce3c976d986deee32f02a0fad8553a4)
3.日期/时间函数
1)获取系统日期和时间函数
函数格式:Date()
返回当前系统日期。
函数格式:Time()
返回当前系统时间。
函数格式:Now()
返回当前系统日期和时间。
例如:
![](https://epubservercos.yuewen.com/7138D4/17180253605311106/epubprivate/OEBPS/Images/img00089002.jpg?sign=1739147337-RRdgCGMkGGfbs72ZCYFpOJAKP2qgp3rd-0-531dbd058836d12f25b54adbdeb36d8b)
2)截取日期分量函数
函数格式:Year(日期表达式)
返回日期表达式表示年份的整数。
函数格式:Month(日期表达式)
回日期表达式表示月份的整数。
函数格式:Day(日期表达式)
返回日期表达式表示日期的整数。
函数格式:Weekday(日期表达式)
返回日期表达式表示的日期是星期几。该函数的返回值为1~7,默认情况下,1表示星期天,2表示星期一,3表示星期二……
例如:
![](https://epubservercos.yuewen.com/7138D4/17180253605311106/epubprivate/OEBPS/Images/img00089003.jpg?sign=1739147337-L1qMwCzBtzW6jdEbomL02lCFq5e8FOce-0-d6ab00cfedab584f05b614b62c61f86e)
3)截取时间分量函数
函数格式:Hour(时间表达式)
返回时间表达式表示小时的整数。
函数格式:Minute(时间表达式)
返回时间表达式表示分钟的整数。
函数格式:Second(时间表达式)
返回时间表达式表示秒的整数。
例如:
![](https://epubservercos.yuewen.com/7138D4/17180253605311106/epubprivate/OEBPS/Images/img00090002.jpg?sign=1739147337-vjsEkWHzmuZo6skxgGUWWbPkK8jb1MKB-0-7fdc9964e1339d94bc9351de831d9f03)
4)日期/时间增加或减少一个时间间隔函数
函数格式:DateAdd(间隔类型,间隔值,日期表达式)
对日期表达式按照间隔类型增加或减少指定的时间间隔值。间隔类型为一个字符串,其值的设定如表3.4所示。间隔值可以为正数或负数。
表3.4 “间隔类型”值
![](https://epubservercos.yuewen.com/7138D4/17180253605311106/epubprivate/OEBPS/Images/img00090003.jpg?sign=1739147337-M6jQoN1sE3rInd2OgUkTR54N4XB1cvUW-0-4b912bcd2bf8c3f0f95bda30970570e8)
例如:
![](https://epubservercos.yuewen.com/7138D4/17180253605311106/epubprivate/OEBPS/Images/img00090004.jpg?sign=1739147337-XQ2I6fZCUaYwvkdDZtO4qelLBMGdEfSr-0-e59ca7c6b94e3bd80a67d1da2d021eed)
5)计算两个日期之间的时间间隔函数
函数格式:DateDiff(间隔类型,日期表达式1,日期表达式2)
返回日期表达式1和日期表达式2之间按照时间间隔类型所指定的时间间隔数量。注意,间隔类型为一个字符串,其值的设定见表3.4。
例如:
![](https://epubservercos.yuewen.com/7138D4/17180253605311106/epubprivate/OEBPS/Images/img00090005.jpg?sign=1739147337-GO7WvUcKjtbXAFGzW6hZqYAt9lbEJqod-0-e93b2914234a1c7729f7b447380b7954)
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两个数中的最大数