admin 管理员组文章数量: 1184232
2024年1月19日发(作者:log4j2用法)
Visual FoxPro常用函数汇总表
函数格式
函数功能
备注 实例 结果
返回值类型
N
绝对值返回数值表达式的ABS(数值表达式) ABS(-7.9)
函数 绝对值
数值表达式>0时函数值为1
SIGN((数值表达符号函数值表达式<0时函式) 数 数值为-1
数值表达式=0时函数值为0
SQRT(数值表达式)
求平方数值表达式不能为根函数 负
圆周率函数
该函数没有参数,只返回圆周率π的值
PI()
SIGN(6.8)
SIGN(-6.8)
SING(0)
7.9
1
-1
0
N
SQRT(16) 4 N
PI() 3.14 N
取整函只取数值表达式的INT(数值表达式) INT(3.5)
数 整数部分.
CEILING(数值表取出大返回大于或等于指CEILING(7.6)
达式) 于等于定数值表达式的最CEILING(-7.6)
3
8
-7
N
N
最小的小整数
整数
取出小FLOOR(数值表达于等于式) 最大的返回小于或等于指定数值表达式的最FLOOR(7.6)
FLOOR(-7.6)
7
-8
N
大整数
整数
舍入位数>0时表示ROUND(12365.789,2)
要保留的小数位数
ROUND(源数值型四舍五ROUND(12365.789,-2)
舍入位数<0时表示数, 舍入位数) 入函数 ROUND(15.8,-2)
整数部分的舍入位ROUND(65.8,-2)
数
如果被除数与除数符号相同则正常上商求余数
如果被除数与除数MOD(被除数,除数)
余数函符号相反则在正常数 商的基础上多上一位,即商为原来的商+1再求余数
两种情况的余数符号与除数的符号相MOD(15,7)
MOD(-15,-7)
MOD(15,-7)
MOD(-15,7)
12365.79
12400
0
100
N
余数:1 商:2
余数:-1商:2
N
余数:-6商:3
余数:6 商:3
同
计算各表达式的值返回最大值.表达式的类型可以是数MAX(表达式1,表达式2[,表达式3…])
最大值函数
值型、字符型、货币型、双精度型、浮点型 、日期型和日期时间型,但所有表达式的类型必须相同。
计算各表达式的值返回最小值.表达式的类型可以是数MIN(表达式1,表达式2[,表达式3…])
最小值函数
值型、字符型、货币型、双精度型、浮点型 、日期型和日期时间型,但所有表达式的类型必须相同。
字符串返回字符串的长LEN(字符表达式) LEN(’ NCRE志成’)
长度函度,即所包含的字8 N
MIN(2,81,143)
MIN(’2’,’81’,’143’)
2
’143’
表达式的类型
MAX(2,81,143)
MAX(’2’,’81’,’143’)
143
’81’
表达式的类型
数 符个数。一个汉字占两个字符
大写字LOWER(字符表达母转小式) 写字母函数
小写字UPPER(字符表达母转大式) 写字母函数
SPACE(产生空格个数)
空格字符串生成函数
大写字母转成小写字母,其他字符不LOWER(’Aa3-志’)
变
’AA3-志’ C
小写字母转成大写字母,其他字符不UPPER(’Aa3-志’)
变
’aa3-志’ C
生成指定数目的穿?’12345678’
梭格组成的字符串 ?’|’+SPACE(2)+’|’
12345678
| |
C
TRIM(字符表达式)
删除尾去掉指定字符表达?’’
部空格式值尾部(右侧)空?’*’+SPACE(2)+TRIM(’AB’)+SPACE(3)+’*’
函数 格 ?’*’+TRIM(SPACE(2)+’AB’+SPACE(3))+’*’
* AB * C
* AB*
LTRIM(字符表达式)
删除前去掉指定字符表达?’’
导空格式值首部(左侧)空?’*’+SPACE(2)+LTRIM(’AB’)+SPACE(3)+’*’ * AB * C
函数 格 ?’*’+LTRIM(SPACE(2)+’AB’+SPACE(3))+’*’ *AB *
C
?’*’+SPACE(2)+ALLTRIM(’AB’)+SPACE(3)+’*’ * AB *
ALLTRIM(字符表删除前去掉指定字符表达?’’
达式) 导和尾式值首部和尾部
部空格(左右两侧)空格 ?’*’+ALLTRIM(SPACE(2)+’AB’+SPACE(3))+’*’ *AB*
函数
从字符表达式值的LEFT(字符表达式,长度)
左取子左侧取一个指定长串函数 度的子串作为函数值
从字符表达式值的RIGHT(字符表达右取子右侧取一个指定长式,长度) 串函数 度的子串作为函数值
SUBSTR(字符表达式,起始位置[,长度])
从字符表达式值的取子串左侧取一个指定长函数 度的子串作为函数值
返回子字符串在源OCCURS(子字符串,源字符串)
计算子字符串中出现的次OCCURS(’A’,’ABCABCDA’)
串出现数,若子字符串不OCCURS(’BC’,’ABCABCDA’)
次数函 是源字符串的子串,函数值为0
AT(子字符串,源区分大返回子字符串在源AT(’AB’,’ABCabCAB’)
字符串[,次数]) 小写子字符串中指定出现AT(’AB’,’ABCabCAB’,2)
1
7
N
OCCURS(’DD’,’ABCABCDA’)
3
2
0
N
SUBSTR(’ABCDEF’,2,3)
SUBSTR(’ABCDEF’,1,2)
SUBSTR('ABCDEF',LEN('ABCDEF')-2+1,2)
BCD
AB
EF
C
RIGHT(’ABCDEF’,2) EF C
LEFT(’ABCDEF’,2) AB C
串位置次数的位置,但是AT(’AB’,’ABCabCAB’,4)
函数 要区分大小写
不区分返回子字符串在源ATC(子字符串,源大小写字符串中指定出现字符串[,次数]) 子串位次数的位置,但是置函数 不区分大小写
把从源字符串中按指定位置开始取指STUFF(源字符串,子串起始位置,子子串替串长度,要替换的换函数
字符串)
定长度的子串用第一个字符串替换.
若长度为0则实现插入功能;
若要替换的字符串为空串,则实现删除功能
CHRTRAN(源字符串,源串中需要被替换的字符列表,将要替换成的字符列表)
ATC(’AB’,’ABCabCAB’)
ATC(’AB’,’ABCabCAB’,2)
ATC(’AB’,’ABCabCAB’,4)
0
1
4
0
N
STUFF(’ABCDEF’,2,3,’***’)
STUFF(’ABCDEF’,2,3,’*’)
STUFF(’ABCDEF’,2,3,’****’)
STUFF(’ABCDEF’,2,0,’***’)
STUFF(’ABCDEF’,2,3,’’)
A***EF
A*EF
A****EF
A***BCDEF
AEF
C
源字符串中的字符CHRTRAN(’ABCDEF’,’AEC’,’*+#’)
若在第二个参数中
字符替出现则用第三个参
换函数 数中相对位置的字
符来替换 CHRTRAN(’ABCDEF’,’AEC’,’*+’)
*B#D+F
*BD+F
C
如果第三个字符个
数少于第二个字符
串包含的字符个
*BCD+F
数,则没有对应的
字符将在源字符串CHRTRAN(’ABCDEF’,’AE’,’*+#’)
被删除 如果字符串是汉字,可能在截取时会出错.如:
如果第三个字符个?CHRTRAN([科技信息],[科技],[计算机])
数多于第二个字符结果为:计怂信息
串包含的字符个数,则多余的字符被忽略
只有第一个参数中的*?表示通配符,*字符串匹配函数
表示多个字符,?表LIKE(’AB*’,’ABCD’) &&*<=>CD
示一个字符.若第LIKE(’AB*’,’ABC’) &&*<=>C
一个参数能表示第LIKE(’AB?’,’ABCD’) &&?<≠>CD
二个参数则函数返LIKE(’AB?’,’ABC’) &&?<=>C
回.T.,否则返回.F.
DATE()
TIME()
系统日返回系统日期
期函数
系统时返回系统时间
假设系统日期时间为:2006年9月23日8点50分01秒:DATE()
2006/09/23 D
C
.T.
.T.
.F.
.T.
L
LIKE(字符串通式,字符串实例)
假设系统日期时间为:2006年9月23日8点50分0108:50:01
间函数
系统日DATETIME()
秒:TIME()
假设系统日期时间为:2006年9月23日8点50分012006/09/23
期时间返回系统日期时间 T
秒:DATETIME() 08:50:01
函数
年份函数
假设系统日期时间为:2006年9月23日8点50分01返回系统日期年份 2006
秒:YEAR(DATETIME())
YEAR(日期表达式|日期时间表达式)
MONTH(日期表达式|日期时间表达式)
N
月份函数
假设系统日期时间为:2006年9月23日8点50分01返回系统日期月份 9
秒: MONTH(DATETIME())
假设系统日期时间为:2006年9月23日8点50分01返回系统日期天数 23
秒: DAY(DATETIME())
8
N
DAY(日期表达式|天数函日期时间表达式) 数
N
HOUR(日期时间表小时函返回系统日期时间假设系统日期时间为:2006年9月23日8点50分01达式) 数 的小时 秒: HOUR(DATETIME())
N
MINUTE(日期时间分钟函返回系统日期时间假设系统日期时间为:2006年9月23日8点50分01表达式) 数 的分钟 秒: MINUTE(DATETIME())
50 N
SEC(日期时间表秒数函返回系统日期时间假设系统日期时间为:2006年9月23日8点50分01达式) 数 的秒 秒: SEC(DATETIME())
01
N
STR(数值表达式,数值转数值转换成字符串N=-12345.678
总长度[,小数位换成字型.设有一个理想
数]) 符串函长度L=整数部分+
C
数 小数部分+1位小数?’1234567890’
点 ?STR(N,10,2) &&L=6+2+1=9<10
1234567890
-12345 .68
-12345 .7
****
总长度>L:加前导?STR(N,8,3) &&L=6+3+1=10 6<8<10
空格
数值整数部分<总
长度
足整数部分而自动调整小数位数
总长度<数值整数部分:返回总长度个星号(*)
字符串字符串转换成数值VAL(’123.458’)
转换成型
VAL(字符表达式) VAL(’12K3.458’)
数值函当遇到第一个非数VAL(’F123.458’)
数 字字符时停止转换
字符型数据转换为SET DATE TO YMD &&日期格式为年月日
字符串日期型数据.字符SET CENTURY ON &&年用四位显示
CTOD(字符表达式)
转换成串的日期部分格式SET CENTURY TO 19 ROLLOVER 51
日期函要与SET DATE TO&&年份>=51时为19__年即20世纪
数 命令设置的格式一&&年份<51时为20__年即21世纪
致.其中的年份可?CTOD(’2006/09/23’)
123.458
12
0
2006/09/23
D
N
以用四位或两位表?CTOD(’06/09/23’)
示,若用两位,则世?CTOD(’76/09/23’)
纪由SET CENTURY
TO 语句指定.
字符型数据转换为SET DATE TO YMD &&日期格式为年月日
日期时间型数据.SET CENTURY ON &&年用四位显示
字符串的日期部分SET CENTURY TO 19 ROLLOVER 51
字符串CTOT(字符表达式)
转换成日期时间函数
格式要与SET DATE &&年份>=51时为19__年即20世纪
TO命令设置的格式&&年份<51时为20__年即21世纪
一致.其中的年份?CTOT(’2006/09/23’+SPACE(1)+’08:50:01’)
可以用四位或两位&&2006/09/23 08:50:01
表示,若用两位,则?CTOT(’06/09/23’ +SPACE(1)+’08:50:01’)
世纪由SET &&1906/09/23 08:50:01
1906/09/23
2076/09/23
T
CENTURY TO 语句?CTOT(’76/09/23’ +SPACE(1)+’08:50:01’)
指定.
日期转换成字符串函数
将日期型数据转换成字符型数据,若加1选项,则共8个字符,格式:
YYYYMMDD
&&2076/09/23 08:50:01
假设系统日期时间为:2006年9月23日8点50分01
秒:
?DTOC(DATE ( ))
?DTOC(DATE ( ),1)
2006/09/23
20060923
C
C
DTOC(日期时间表达式|日期时间表达式[,1])
TTOC(日期时间表日期时将日期时间型数据假设系统日期时间为:2006年9月23日8点50分01
达式[,1]) 间转换转换成字符型数秒:
成字符据,若加1选项,则?TTOC(DATETIME( )) &&2006/09/23 08:50:01
串函数 采用24小时制,共?TTOC(DATETIME( ),1) && 21
14个字符,格式:
YYYYMMDDHHMMSS
不用加括号的函宏替换函数
数,参数必须是字符型变量,&相当于去掉双引号(字符型定界符)
如果被测表达式在BETWEEN(被测表达式,范围下限,范围上限)
值域测范围上下限内(包X=’A’
A=123
?X
?&X
A
123
不确定 &字符型变量[.]
BETWEEN(15,10,20,)
BETWEEN(10,10,20,)
.T.
.T.
.T.
.F.
L 括上下限)函数返试函数 BETWEEN(20,10,20,)
回值为.T.,否则返BETWEEN(55,10,20,)
回值为.F.
空值表达式值为NULL时函数值为.T.否则为..F.
ISNULL(表达式)
(NULL值)测试函数
ISNULL(.NULL.)
ISNULL(0)
.T.
.F.
L
EMPTY(表达式)
"空"值“空”值与NULL测试函是两个不同的概EMPTY(.NULL.)
EMPTY(0)
.F.
.T.
L
数 念.数值型、货币EMPTY(SPACE(0))
型 、浮点型、整型、EMPTY(.F.)
双精度型值为0时EMPTY(.T.)
函数返回为.T.否则为.F.;日期型、日期时间型、备注字段、字符型值为空时函数值为.T.否则为.F.
返回一个大写字母,函数值为字符A=’AAS’
型.若表达式的值B=20 && 前一次数据
为.NULL.值,则根B=.NULL. && 当前数据
.T.
.T.
.F.
C
X
X
N
C
VARTYPE(表达式[,逻辑表达式])
数据类型测试函数
据逻辑表达式值决?VARTYPE(A)
定返回的类型:如?VARTYPE(B)
果逻辑表达式的值?VARTYPE(B,.F.)
为.T.,就返回表达?VARTYPE(B,.T.)
式的前一次数据类
型,若为.F.或缺变量B的前一次原数据为20,现数据为.null.
省,则返回X表示
运算结果为NULL
值
参数条件成立则函IIF(条件,条件成立时结果表达式,条件测数返回第二个表达式的值,若条件不?IIF(10<20,”T”,.F.) T
.F.
由后两个参数类型决定
成立则返回第三个条件不成立时结试函数 ?IIF(10>20,”T”,.F.)
表达式的值.后两果表达式)
个表达式的类型可以不相同.
从日期表达式WEEK( ) 函数返回
WEEK(日期表达式)
中返回1 到 53 之间的一一年中个数,该数代表一第几周年中周的序号。
的数值。
从日期表达式DOW(日期表达式) 1为星期日,以此类返回该? DOW({^2008/08/08})
或 CDOW(日期表推。CDOW用英文单日期是? CDOW({^2008/08/08})
达式) 词表示星期几.
一周的第几天
? WEEK({^2008/08/08})
32 N
N,
6
Friday
CDOW( )
是字符型C
返回字符表达ASC(字符串表达式中最式) 左边字符的
仅返回字符串中第一个字符的 ANSI ? ASC([a])
值,忽略其他字符。
97 N
ANSI 值
由ANSI
数值代CHR(数值) 码返回其对应指定一个介于 0
和 255 之间的数值,返回与之对应? CHR(97) a C
的 ANSI 字符。
的字符。
产生0到RAND() 1之间的带两位小数
随机数
REPLICATE( <字符产生重函数值为一个字符表达式>,<数值表复字符串,将<字符表达?replicate([HUNAN],2)+replicate([湖南],3)
达式> ) 的字符式>重复<数值表达
串函数 式>所指定的次数。
L
HUNANHUNAN? RAND() -> 0.86 每次不相同 N
C
湖南湖南湖南
EOF([工作区号|表文件表文件尾是指最后表别名]) 尾测试一条记录的后面位
函数 置.-若当前没有表打开,则函数返回.F.;若表中不包含任何记录,函数返回.T.
表文件首是指第一条记录的前面位BOF([工作区号|表别名])
表文件置.-若当前没有表首测试打开,则函数返函数 回.F.;若表中不包含任何记录,函数返回.T.
返回当前表文件或设1工作区有一个表打开且共有5表记录,其它工作区
指定表文件中的当没表打开:
前记录号.如果指SELE 1
RECNO([工作区号|表别名])
记录号定工作区上没有打2
测试函开表文件,则返回?RECNO( )
数 0.若记录指针指向GO TOP
文件夹尾,函数返SKIP –1
回总记录数+1的?RECNO( )
2
1
N
L
值;若记录指针指GO BOTTOM
向文件首,函数值SKIP
为表文件中第一条?RECNO( )
记录号.
返回当前表文件或RECCOUNT([工作区号|表别名])
记录个指定表文件中的记数测试录个数.如果指定函数 工作区上没有打开表文件,则返回0.
6
设1工作区有一个表打开且共有5表记录,其它工作区
没表打开:
SELE 1
?RECCOUNT( )
SELE 0
?RECCOUNT( )
5
0
.T.
.F.
L
N
DELETED(表的别名|工作区号)
记录删除测试函数
若当前记录有删除设当前记录号为3且整个表只有此记录有删除标记:
标记”*”,则函数DELETED()
返回值为.T.;否则2
为.F. DELETED()
clear
如果 CONTINUE、Use 等级考试 .t.
李丽
.t.
韩丽娜
…
查找成FIND、LOCATE 或 LOCATE FOR [丽] $ 姓名
FOUND( ) 功测试SEEK 命令执行成DO WHILE FOUND( )
函数 功,函数的返回值disp
为“真”(.T.)。 CONTINUE
ENDDO
use
函数格式
函数分类
函数功能
备注
实例
结果
返回值类型
1、数学函数
函数 用途
ABS(<数值表达式>) 绝对值,|x|
CEILING(<数值表达式>) >=自变量的最小整数
EXP(<数值表达式>) 对基E的幂,e=2.71828
FLOOR(<数值表达式>) <=自变量的最大整数
INT(<数值表达式>) 取整(舍尾)自变量
LOG(<数值表达式>) 自变量的自然对数,ln x
LOG10(<数值表达式>) 自变量的普通对数,lg x
MAX(<表达式1>,<表达式2>) 两个值的最大值
MIN(<表达式1>,<表达式2>) 两个值的最小值
MOD(<数值表达式1>,<数值表达式2>) 求余数
RAND([<数值表达式1>]) 返回伪随机数
ROUND(<数值表达式1>,<数值表达式2>) 四舍五入第一个自变量
SIGN(<数值表达式>) 自变量的符号
SQRT(<数值表达式>) 平方根(正根)
2、字符串操作函数
函数 用途
&<内存变量> 用于代替内存变量内容
LEN(<字符串表达式>) 返回字符串表达式的字符个数
SPACE(<数值表达式>) 生成空格
SUBSTR(<字符串表达式>,<数值表达式n>[,<数值表达式L>]) 求子字符串,从指定的字符串表达式第n个开始,总长为L的字符串
LOWER(<字符串表达式>) 将字符串字母转换成小写字母
UPPER(<字符串表达式>) 将字符串字母转换成大写字母
TRIM(<字符串表达式>) 删除字符串尾空格
ASC(<字符串表达式>) 返回字符串表达式最左边的第一个字符的ASCII码
CHR(<数值表达式>) 将数值表达式转换成字符
AT(<字符串表达式1>,<字符串表达式2>[,<数值表达式n>]) 确定字符串表达式1在字符串表达式2中的位置,n为字符串表达式第几次出现
STR(<数值表达式>[,<数值表达式L>][,<数值表达式n>) 将数值转换为字符串,L为数值表达式总长,n为小数位数
VAL(<字符串表达式>) 将数字字符串转换为数字
TYPE(<表达式>) 检测表达式值的数据类型
LTRIM(<字符串表达式>) 删除字符串左部空格
RTRIM(<字符串表达式>) 删除字符串右部空格
LEFT(<字符串表达式>,<数值表达式n>) 取字符串左边部分字符,n为返回的字符个数
RIGHT(<字符串表达式>,<数值表达式n>) 取字符串右边部分字符,n从右边截取字符个数
3、表(.dbf)操作函数
函数 用途
BOF([<工作区号或别名>]) 查表文件开始函数
EOF([<工作区号或别名>]) 表文件结尾测试函数
RECNO([<工作区号或别名>]) 测试当前或指定工作区表的当前记录号
DELETED([<工作区号或别名>]) 记录删除测试函数
FILE(<"字符串">) 测试文件是否存在函数
DBF([<工作区号或别名>]) 检测表的文件名函数
4、日期、时间函数
函数 用途
DATE() 查系统当前日期函数
TIME([<数值表达式>]) 查系统当前时间函数
YEAR(<日期型表达式>|<日期时间型表达式>) 由日期查年函数
MONTH(<日期型表达式>|<日期时间型表达式>) 从日期查月份函数
CMONTH(<日期型表达式>|<日期时间型表达式>) 由日期查月份名函数
DAY(<日期型表达式>|<日期时间型表达式>) 从日期查当月的日函数
DOW(<日期型表达式>|<日期时间型表达式>[,<数值表达式>]) 由日期查星期函数
CDOW(<日期型表达式>|<日期时间型表达式>) 从日期查星期名函数
DTOC(<日期型表达式>|<日期时间型表达式>) 日期转换为字符函数
CTOD(<字符串表达式>) 字符串转换为日期函数
CTOT(<字符串表达式>) 返回日期时间值函数
TTOC(<日期时间型表达式>) 返回字符值
5、显示、打印位置函数
函数 用途
ROW() 判断光标行位置函数
COL() 判断光标列位置函数
INKEY([<数值表达式>]) 检测用户所击键对应的ASCII码函数,数值表达式以秒为单位等待击键的时间
6、其他函数
函数 用途
DISKSPACE() 返回默认磁盘驱动器中可用字节数函数
OS() 检测操作系统名称的函数
VERSION() 返回VFP版本号的函数
版权声明:本文标题:vfp常用函数汇总表 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1705597703a491778.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论