

 从补丁 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/)。

# TO\$1TIMESTAMP 函数
<a name="r_TO_TIMESTAMP"></a>

TO\$1TIMESTAMP 将 TIMESTAMP 字符串转换为 TIMESTAMPTZ。有关适用于 Amazon Redshift 的其他日期和时间函数的列表，请参阅[日期和时间函数](Date_functions_header.md)。

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

```
to_timestamp(timestamp, format)
```

```
to_timestamp (timestamp, format, is_strict)
```

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

*timestamp*  
以 *format* 指定的格式表示时间戳值的字符串。如果将此参数留为空，则时间戳值默认为 `0001-01-01 00:00:00`。

*format*  
一个字符串文本，用于定义 *timestamp* 值的格式。包含时区的格式（**TZ**、**tz**，或者 **OF**）不支持作为输入。有关有效的时间戳格式，请参阅[日期时间格式字符串](r_FORMAT_strings.md)。

*is\$1strict*  
一个可选的布尔值，它指定在输入时间戳值超出范围时是否返回错误。当 *is\$1strict* 被设置为 TRUE 时，如果存在超出范围的值，则返回错误。当 *is\$1strict* 被设置为 FALSE（默认值）时，则接受溢出值。

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

TIMESTAMPTZ

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

以下示例演示使用 TO\$1TIMESTAMP 函数将 TIMESTAMP 字符串转换为 TIMESTAMPTZ。

```
select sysdate, to_timestamp(sysdate, 'YYYY-MM-DD HH24:MI:SS') as second;

timestamp                  | second
--------------------------   ----------------------
2021-04-05 19:27:53.281812 | 2021-04-05 19:27:53+00
```

可以传递日期的 TO\$1TIMESTAMP 部分。其余日期部分设置为默认值。时间包括在输出中：

```
SELECT TO_TIMESTAMP('2017','YYYY');

to_timestamp
--------------------------
2017-01-01 00:00:00+00
```

以下 SQL 语句将字符串“2011-12-18 24:38:15”转换为 TIMESTAMPTZ。得到的结果是第二天的 TIMESTAMPTZ，因为小时数超过 24 小时：

```
SELECT TO_TIMESTAMP('2011-12-18 24:38:15', 'YYYY-MM-DD HH24:MI:SS');
         
to_timestamp
----------------------
2011-12-19 00:38:15+00
```

以下 SQL 语句将字符串“2011-12-18 24:38:15”转换为 TIMESTAMPTZ。结果产生错误，因为时间戳中的时间值超过 24 小时：

```
SELECT TO_TIMESTAMP('2011-12-18 24:38:15', 'YYYY-MM-DD HH24:MI:SS', TRUE);
         
ERROR:  date/time field time value out of range: 24:38:15.0
```