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

空格

数值整数部分<总

长度先满?STR(N,4,3) &&L=6+3+1=10 4<6

足整数部分而自动调整小数位数

总长度<数值整数部分:返回总长度个星号(*)

字符串字符串转换成数值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版本号的函数


本文标签: 表达式 函数 字符串