41.日期转换为字符函数
【函数格式】 ?dtoc(<日期表达式>[,1]
【函数功能】 把日期型数据转换为字符型数据
【使用说明】 ①<日期表达式>指定被转换的日期型数据
②选择1,按yyyymmdd的格式返回结果。缺省该选项,按mm/dd/yy的格式返回结果
【返回值类型】 字符型
eg:?dtoc({^2007-02-10}) 02/10/07
42.字符转换为ASCⅡ码函数
【函数格式】 ?asc(<字符表达式>)
【函数功能】 返回<字符表达式>值的第一个字符的ASCⅡ码
【返回值类型】 数值型
eg:?asc(”a”) 97
?asc(”A”) 65
43. ASCⅡ码转换为字符函数
【函数格式】 ?chr(<数值表达式>)
【函数功能】 返回<数值表达式>值表示的ASCⅡ码转换为字符
【返回值类型】 字符型
eg:?chr(97) a
?chr(65) A
⑤、其他函数
44.测试首字符是否为字符函数
【函数格式】 ?isalpha(<字符表达式>)
【函数功能】 测试<字符表达式>首字符是否为字符
【返回值类型】 逻辑型
eg:?isalpha(”aaabbbccc”) .T.
?isalpha(”123aaa”) .F.
45.测试首字符是否为0—9数字函数
【函数格式】 ?isdigit(<字符表达式>)
【函数功能】 测试<字符表达式>首字符是否为0—9数字
【返回值类型】 逻辑型
eg:?isdigit(”aaabbbccc”) .F.
?isdigit(”123aaa”) .T.
46.测试首字符是否为小写函数
【函数格式】 ?islower(eg:? <字符表达式>)
【函数功能】 测试首字符是否为小写函数
【返回值类型】 逻辑型
eg:?isalpha(”aaabbbccc”) .T.
47.测试首字符是大写函数
【函数格式】 ?isupper(<字符表达式>)
【函数功能】 测试首字符是否为大写函数
【返回值类型】 逻辑型
eg:?isdigit(”aaabbbccc”) .F.
48.宏代换函数
【函数格式】 &<字符型内存变量>
【函数功能】 返回字符型内存变量的值
【返回值类型】 字符型
eg:①a=”y”
y=”123”
?&y 123
②a=”b”
b=”123”
?a b
?&a 123
?&a=123 .T.
49.测试数据范围函数
【函数格式】 ?between(<表达式1>,<表达式2>,<表达式3>)
【函数功能】 如果<表达式1>的值在<表达式2>和<表达式3>之间,则返回逻辑真值,反之为假
【返回值类型】 逻辑型
eg:?between(12,13,20) .F.
?between(18,13,20) .T.
?between(“c”,”a”,”y”) .T.
50.测试数据是否为空函数
【函数格式】 ?empty(<表达式>)
【函数功能】 测试指定表达式是否为空,如果表达式为空,返回逻辑真值,反之为假值
【返回值类型】 逻辑型
eg:?empty(“□□□”) .T.
?empty(“0”) .T.
?empty(“54”) .F.
51.测试数据是否为空函数
【函数格式】 ?isnull(<表达式>)
【函数功能】 测试指定表达式是否为空,如果表达式为null,返回逻辑真值,反之为假值
【返回值类型】 逻辑型
eg:?isnull(null) .T.
?isnull(“125”) .F.
?isnull(“□□□”) .F.
52.测试类型函数
【函数格式】 ?vartype(<表达式))
【函数功能】 测试指定表达式的数据类型
【返回值类型】 字符型
eg:?vartype(123.123) N
?vartype(“addsdfsd”) C
53.去括号函数
【函数格式】 ?type(<”表达式”>)
【函数功能】 去掉最外一层括号,并判断指定表达式的数据类型
【返回值类型】 字符型
l type函数返回值为C,N,D,L,M,S,U(S为屏幕型,U为未定义的数据类型)
eg:?type([“123”] C
?type(‘{06/10/2007}’) U
?type(“5>2”) L
*************************************************************************************
小结:
1. 函数都要加括号,都要有自变量,都必须带参数;
2.函数的类型与返回值必须保持一致;
3. 带括号的是函数,不带括号的是命令。
*************************************************************************************
5、表达式(优先级顺序由高到低排列)
①.算术运算符
运算顺序为:先乘方,再乘除与取模,后加减,同一级别运算由左向右,圆括号可以改变运算的先后次序,若有圆括号嵌套,则按先内后外的次序处理。
②字符运算符
两字符串相加表示原位连接;
两字符串相减,将第一个字符串后面的空格去掉,放到总字符串后,总字符串数不变。
③日期时间运算符
两日期相减,表示相差的天数;
两时间相减,表示相差的秒数;
一个日期加/减一个数,表示多个天以后/前;
一个时间加/减一个数,表示多个秒以后/前;
set stric to 0 是将严格日期转换为传统(普通)日期
两日期/时间相加=错误
④关系运算符
* set exact off (左包含右,返回值为真,右包含左,返回值为假)
eg:?”ab”=”abc” .F.
?”abc”=”abc” .T.
?”abcd”=”abc” .T.
* set exact on (先用空格补齐位数,在做比较)
eg:?”ab□”=”abc” .F.
?”abc□”=”abc” .T.
?”abcde”=”abcd” .F.
?”ab”=”ab□□□” .T.
?”ab”=”abc□□□” .F.
⑤逻辑运算符
l not或!当条件成立时,返回值为真,反之为假(右包含左为真,左包含右为假)
l and 左右同时为真,返回值为真,反之为假
l or 左右同时为假,返回值为假,只有一个为真是,返回值为真
l 优先级顺序:not >and >or
while>for ?for>while 字段变量>内存变量
⑥运算符的优先级
圆括号>算术运算符>字符串运算符>日期和日期时间运算符>关系运算符>逻辑运算符
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |