

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息，请参阅[博客文章](https://www.amazonaws.cn/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

# STRTOL 函数
<a name="r_STRTOL"></a>

将由一些指定基数组成的字符串表达式转换为等效的整数值。已转换的值必须在有符号 64 位范围中。

## 语法
<a name="r_STRTOL-syntax"></a>

```
STRTOL(num_string, base)
```

## 参数
<a name="r_STRTOL-arguments"></a>

 *num\_string*   
要转换的数字的字符串表达式。如果 *num\_string* 为空（`''`）或以 null 字符（`'\0'`）开头，则转换后的值为 `0`。如果 *num\_string* 是包含 NULL 值的列，STRTOL 将返回 `NULL`。字符串能够以任意数量的空格开头，也可以后跟加号“`+`”或减号“`-`”以表示正负。默认值为“`+`”。如果 *base* 为 `16`，则字符串可以“`0x`”开头。

*base*  
`INTEGER` 介于 2 和 36 之间。

## 返回类型
<a name="r_STRTOL-return-type"></a>

BIGINT  
如果 *num\_string* 为 null，则函数返回 `NULL`。

## 示例
<a name="r_STRTOL-examples"></a>

要将字符串和基数值对转换为整数，请使用以下示例。

```
SELECT STRTOL('0xf',16);

+--------+
| strtol |
+--------+
|     15 |
+--------+

SELECT STRTOL('abcd1234',16);

+------------+
|   strtol   |
+------------+
| 2882343476 |
+------------+

SELECT STRTOL('1234567', 10);

+---------+
| strtol  |
+---------+
| 1234567 |
+---------+

SELECT STRTOL('1234567', 8);

+--------+
| strtol |
+--------+
| 342391 |
+--------+

SELECT STRTOL('110101', 2);

+--------+
| strtol |
+--------+
|     53 |
+--------+

SELECT STRTOL('\0', 2);

+--------+
| strtol |
+--------+
|      0 |
+--------+
```