本主题列出了 表达式 所支持的运算符和函数, 也提供了关于如何在表达式中指定常量的信息。
运算符
运算符 | 说明 | 示例 |
---|---|---|
+ | 把一个数值表达式的值加计到另一个上, 或者连接两个字符串。 | [FirstName] + ' ' + [LastName] [UnitPrice] + 4 |
- | 计算两个数值的差。 | [Price1] - [Price2] |
* | 计算两个表达式的乘积。 | [Quantity] * [UnitPrice] * (1 - [BonusAmount]) |
/ | 用第二个操作数除第一个操作数。 | [Quantity] / 2 |
% | 返回第二个数值表达式除第一个数值表达式后的余数(模)。 | [Quantity] % 3 |
| | 比较第一个操作数的每一位与第二个操作数相应的位(译者注:即按位“或”运算)。 如果任一操作数的一位为 1,则结果中的该位为 1。 否则,结果中的该位为 0。 | [Flag1] | [Flag2] |
& | 在两个整数值之间执行按位逻辑“与”运算。 | [Flag] & 10 |
^ | 对两个 Boolean 表达式执行“异或”运算,或者对两个数值表达式执行按位“异或”运算。 | [Flag1] ^ [Flag2] |
== | 如果两个操作数的值相等,则返回 true; 否则返回 false。 | [Quantity] == 10 |
!= | 如果操作数的值不相等,则返回 true; 否则返回 false。 | [Country] != 'France' |
< | 小于运算符。 用于比较表达式。 | [UnitPrice] < 20 |
<= | 小于或等于运算符。 用于比较表达式。 | [UnitPrice] <= 20 |
> | 大于运算符。 用于比较表达式。 | [UnitPrice] > 30 |
>= | 大于或等于运算符。 用于比较表达式。 | [UnitPrice] >= 30 |
In (,,,) | 测试在对象中属性的存在。 | [Country] In ('USA', 'UK', 'Italy') |
Like | 根据模式来比较字符串。 如果字符串值与模式匹配,则结果是 true。 如果字符串值与模式不匹配,则结果是 false。 如果字符串与模式都是空字符串,则结果是 true。 | [Name] Like 'An%' |
Between (,) | 指定范围测试。 如果一个值大于或等于第一个操作数,并且小于或等于第二个操作数,则返回 true。 | [Quantity] Between (10, 20) |
And | 对两个表达式执行逻辑合取。 | [InStock] And ([ExtendedPrice]> 100) |
Or | 对两个 Boolean 表达式执行逻辑析取。 | [Country]=='USA' Or [Country]=='UK' |
Not | 对 Boolean 表达式执行逻辑求反。 | Not [InStock] |
函数
日期时间函数
函数 | 说明 | 示例 |
---|---|---|
AddDays(DateTime, DaysCount) | 返回与指定 DateTime 相距指定天数的日期时间值。 | AddDays([OrderDate], 30) |
AddHours(DateTime, HoursCount) | 返回与指定 DateTime 相距指定小时数的日期时间值。 | AddHours([StartTime], 2) |
AddMilliSeconds(DateTime, MilliSecondsCount) | 返回与指定 DateTime 相距指定毫秒数的日期时间值。 | AddMilliSeconds(([StartTime], 5000)) |
AddMinutes(DateTime, MinutesCount) | 返回与指定 DateTime 相距指定分钟数的日期时间值。 | AddMinutes([StartTime], 30) |
AddMonths(DateTime, MonthsCount) | 返回与指定 DateTime 相距指定月数的日期时间值。 | AddMonths([OrderDate], 1) |
AddSeconds(DateTime, SecondsCount) | 返回与指定 DateTime 相距指定秒数的日期时间值。 | AddSeconds([StartTime], 60) |
AddTicks(DateTime, TicksCount) | 返回与指定 DateTime 相距指定计时周期数的日期时间值。 | AddTicks([StartTime], 5000) |
AddTimeSpan(DateTime, TimeSpan) | 返回与指定 DateTime 相距指定 TimeSpan 的日期时间值。 | AddTimeSpan([StartTime], [Duration]) |
AddYears(DateTime, YearsCount) | 返回与指定 DateTime 相距指定年数的日期时间值。 | AddYears([EndDate], -1) |
GetDate(DateTime) | 从指定的 DateTime 中获取日期。 | GetDate([OrderDateTime]) |
GetDay(DateTime) | 从指定的 DateTime 中获取天数。 | GetDay([OrderDate]) |
GetDayOfWeek(DateTime) | 从指定的 DateTime 中获取该日是星期几。 | GetDayOfWeek([OrderDate]) |
GetDayOfYear(DateTime) | 从指定的 DateTime 中获取该日是该年中的第几天。 | GetDayOfYear([OrderDate]) |
GetHour(DateTime) | 从指定的 DateTime 中获取小时值。 | GetHour([StartTime]) |
GetMilliSecond(DateTime) | 从指定的 DateTime 中获取毫秒值。 | GetMilliSecond([StartTime]) |
GetMinute(DateTime) | 从指定的 DateTime 中获取分钟值。 | GetMinute([StartTime]) |
GetMonth(DateTime) | 从指定的 DateTime 中获取月份值。 | GetMonth([StartTime]) |
GetSecond(DateTime) | 从指定的 DateTime 中获取秒值。 | GetSecond([StartTime]) |
GetTimeOfDay(DateTime) | 从指定的 DateTime 中获取该日的时间值,按 ticks 计量。 | GetTimeOfDay([StartTime]) |
GetYear(DateTime) | 从指定的 DateTime 中获取年份值。 | GetYear([StartTime]) |
Now() | 返回当前的系统日期和时间。 | AddDays(Now(), 5) |
Today() | 返回当前日期。 不管实际时间如何,该函数总是返回当前日期的午夜。 | AddMonths(Today(), 1) |
UtcNow() | 返回当前的系统日期和时间,表示为协调通用时间 (UTC)。 | AddDays(UtcNow(), 7) |
逻辑函数
函数 | 说明 | 示例 |
---|---|---|
Iif(Expression, TruePart, FalsePart) | 返回 TruePart 或 FalsePart,这取决于 Boolean 表达式的计算结果。 | Iif([Quantity>=10], 10, 0 ) |
IsNull(Value) | 如果指定的 Value 是 NULL,则返回 True。 | IsNull([OrderDate]) |
IsNullOrEmpty(String) | 如果指定的 String 对象是 NULL, 或者是一个空字符串, 则返回 True。 否则返回 False。 | IsNullOrEmpty([ProductName]) |
数学函数
函数 | 说明 | 示例 |
---|---|---|
Abs(Value) | 返回指定数值表达式的绝对值。 | Abs(1 - [Discount]) |
Acos(Value) | 返回指定数值的反余弦值(角度,以弧度表示,其余弦是给定的 float 表达式) 。 | Acos([Value]) |
Asin(Value) | 返回指定数值的反正弦值(角度,以弧度表示,其正弦是给定的 float 表达式) 。 | Asin([Value]) |
Atn(Value) | 返回指定数值的反正切值(角度,以弧度表示,其正切是给定的 float 表达式) 。 | Atn([Value]) |
Atn2(Value1, Value2) | 返回正切值为两个指定数字的商的角度,以弧度表示。 | Atn2([Value1], [Value2]) |
BigMul(Value1, Value2) | 返回由两个指定 32 位数字的完整乘积生成的 Int64 值。 | BigMul([Amount], [Quantity]) |
Ceiling(Value) | 返回大于或等于指定数值表达式的最小整数。 | Ceiling([Value]) |
Cos(Value) | 返回指定角度(以弧度表示)的余弦值。 | Cos([Value]) |
Cosh(Value) | 返回指定角度(以弧度表示)的双曲余弦值。 | Cosh([Value]) |
Exp(Value) | 返回指定 float 表达式的指数值。 | Exp([Value]) |
Floor(Value) | 返回小于或等于指定数值表达式的最大整数。 | Floor([Value]) |
Log(Value) | 返回指定数字的自然对数。 | Log([Value]) |
Log(Value, Base) | 返回指定数字在使用指定底时的对数。 | Log([Value], 2) |
Log10(Value) | 返回指定数字以 10 为底的对数。 | Log10([Value]) |
Power(Value, Power) | 返回指定数字的指定次幂。 | Power([Value], 3) |
Rnd() | 返回一个小于 1,但大于或等于 0 的随机数。 | Rnd()*100 |
Round(Value) | 将值舍入到最接近的整数。 | Round([Value]) |
Sign(Value) | 返回表示指定表达式的符号的值: 正数(+1)、零(0)、负数(-1)。 | Sign([Value]) |
Sin(Value) | 返回指定角度(以弧度表示)的正弦值。 | Sin([Value]) |
Sinh(Value) | 返回指定角度(以弧度表示)的双曲正弦值。 | Sinh([Value]) |
Sqr(Value) | 返回指定数字的平方根。 | Sqr([Value]) |
Tan(Value) | 返回指定角度(以弧度表示)的正切值。 | Tan([Value]) |
Tanh(Value) | 返回指定角度(以弧度表示)的双曲正切值。 | Tanh([Value]) |
字符串函数
函数 | 说明 | 示例 |
---|---|---|
Ascii(String) | 返回字符表达式中最左侧字符的 ASCII 编码值。 | Ascii('a') |
Char(Number) | 把一个整数 ASCII 编码转换为一个字符。 | Char(65) + Char(51) |
CharIndex(String1, String2) | 返回在 String2 中 String1 的起始位置,从零字符位置开始,一直搜索到字符串的末尾。 | CharIndex('e', 'devexpress') |
CharIndex(String1, String2, StartLocation) | 返回在 String2 中 String1 的起始位置,从 StartLocation 字符位置开始,一直搜索到字符串的末尾。 | CharIndex('e', 'devexpress', 2) |
Concat(String1, ... , StringN) | 返回一个由当前字符串连接任意其他字符串而组成的字符串值。 | Concat('A', ')', [ProductName]) |
Insert(String1, StartPosition, String2) | 在 StartPositon 指定的位置,把 String2 插入到 String1 中。 | Insert([Name], 0, 'ABC-') |
Len(Value) | 返回一个整数,该整数表示字符串中的字符数或存储变量所需的名义字节数。 | Len([Description]) |
Lower(String) | 以小写字母形式返回指定的字符表达式。 | Lower([ProductName]) |
PadLeft(String, Length) | 左对齐指定字符串中的字符,在左边用空格符填充以达到指定的总长度。 | |
PadLeft(String, Length, Char) | 左对齐指定字符串中的字符,在左边以指定字符填充以达到指定的总长度。 | PadLeft([Name], 30, '<') |
PadRight(String, Length) | 右对齐指定字符串中的字符,在右边用空格符填充以达到指定的总长度。 | PadRight([Name], 30) |
PadRight(String, Length, Char) | 右对齐指定字符串中的字符,在右边以指定字符填充以达到指定的总长度。 | PadRight([Name], 30, '>') |
Remove(String, StartPosition, Length) | 从该实例中的指定位置开始删除指定数目的字符。 | Remove([Name], 0, 3) |
Replace(String, SubString2, String3) | 返回 String1 的一个副本,在其中 SubString2 已经被替换为 String3。 | Replace([Name], 'The ', '') |
Reverse(String) | 按相反顺序返回字符串。 | Reverse([Name]) |
Substring(String, StartPosition, Length) | 从 String 中检索一个子字符串。 子字符串从 StartPosition 指定的字符位置开始且具有指定的长度。 | Substring([Description], 2, 3) |
Substring(String, StartPosition) | 从 String 中检索一个子字符串。 子字符串从 StartPosition 指定的字符位置开始。 | Substring([Description], 2) |
ToStr(Value) | 返回对象的字符串表现。 | ToStr([ID]) |
Trim(String) | 从 String 中移除所有前导空白字符和尾部空白字符。 | Trim([ProductName]) |
Upper(String) | 以大写字母形式返回指定的字符表达式。 | Upper([ProductName]) |
常量
常量 | 说明 | 说明 |
---|---|---|
字符串常量 | 字符串常量必须使用撇号括起来。 如果字符串包含撇号,则撇号必须双倍出现。 | [Country] == 'France' [Name] == 'O''Neil' |
日期时间常量 | 日期时间常量必须使用“#”括起来。 | [OrderDate] >= #1/1/2009# |
True | 表示 Boolean True 值。 | [InStock] == True |
False | 表示 Boolean False 值 | [InStock] == False |
? | 表示一个 null 引用,不引用任何对象。 | [Region] != ? |