Skip To Content

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)

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