ArcGIS Server 中支持的 SQL 函数

默认情况下,ArcGIS Server 强制使用标准化查询,开发人员需要在通过 REST 或 SOAP 使用地图、要素、影像和 WFS 服务时使用标准化 SQL 查询。这有助于防止 SQL 注入攻击。有关详细信息,请参阅关于标准化查询

如果您是一名应用程序开发人员,并且正在使用数据库特有的 where 子句语法,需要更新应用程序代码中的 where 子句以使用 ArcGIS Server 所支持的常规 SQL 语法。下面的列表显示了支持的 SQL 函数以及每个 SQL 函数的语法。在您的应用程序中使用下列函数和语法时,ArcGIS Server 会对其进行转换,使其符合服务使用的数据库规范。

函数类型

函数

说明

示例

备注

日期

CURRENT_DATE

返回会话时区的当前日期。

Datefield < CURRENT_DATE

仅支持下列日期和时间戳语法:

日期 'yyyy-mm-dd',例如 Datefield = date '2012-05-29'

timestamp 'yyyy-mm-dd hh:mm:ss',例如,Datefield = timestamp '2012-05-29 15:14:25'

CURRENT_TIMESTAMP

返回当前本地时间。

Timestampfield < CURRENT_TIMESTAMP

EXTRACT(extract_field FROM extract_source)

返回日期/时间的单个部分,例如,年、月、日、小时、分钟等。

extract_field 参数可以是下列任一关键字:YEAR、MONTH、DAY、HOUR、MINUTE 或 SECOND。

搜索十一月的所有行:

EXTRACT(MONTH FROM Datefield) = 11

数学

ABS(numeric_exp)

返回指定的数值表达式的绝对(正)值。

CEILING(numeric_exp)

返回大于或等于指定的数值表达式的最小整数。

FLOOR(numeric_exp)

返回小于或等于指定的数值表达式的最大整数。

LOG(float_exp)

返回指定的浮点表达式的自然对数。

LOG10(float_exp)

返回指定的浮点表达式的以 10 为底的对数。

POWER(numeric_exp, integer_exp)

返回指定幂值的指定表达式的值。

POWER(Numericfield, 2) = 16

ROUND(numeric_exp, integer_exp)

返回数值,四舍五入到指定长度或指定精度。

TRUNCATE(numeric_exp, integer_exp)

返回数值,而不将值四舍五入到指定长度或指定精度。

字符串

CHAR_LENGTH(string_exp)

返回输入字符串的字符长度。

CONCAT(string_exp1, string_exp2)

返回连接两个或多个字符串值后得到的字符串。

LOWER(string_exp)

将大写字符数据转换为小写后返回字符表达式。

SUBSTRING(string_exp FROM start FOR length)

返回字符或文本表达式的一部分。

搜索字符串字段中值的前两个字符为 Ch 的所有行:

SUBSTRING(Stringfield FROM 1 FOR 2)='Ch'

UPPER(string_exp)

将小写字符数据转换为大写后返回字符表达式。

5/15/2014