

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

# TIMESTAMP\$1CMP 函数
<a name="r_TIMESTAMP_CMP"></a>

比较两个字符串的值并返回整数。如果时间戳相同，此函数返回 `0`。如果第一个时间戳较大，则函数返回 `1`。如果第二个时间戳较大，则函数返回 `-1`。

## 语法
<a name="r_TIMESTAMP_CMP-synopsis"></a>

```
TIMESTAMP_CMP(timestamp1, timestamp2)
```

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

 *timestamp1*   
数据类型为 `TIMESTAMP` 的列，或一个隐式计算结果为 `TIMESTAMP` 类型的表达式。

 *timestamp2*   
数据类型为 `TIMESTAMP` 的列，或一个隐式计算结果为 `TIMESTAMP` 类型的表达式。

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

INTEGER

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

以下示例比较了时间戳并显示了比较结果。

```
SELECT TIMESTAMP_CMP('2008-01-24 06:43:29', '2008-01-24 06:43:29'), TIMESTAMP_CMP('2008-01-24 06:43:29', '2008-02-18 02:36:48'), TIMESTAMP_CMP('2008-02-18 02:36:48', '2008-01-24 06:43:29');

timestamp_cmp  | timestamp_cmp | timestamp_cmp 
---------------+---------------+---------------
             0 |            -1 |             1
```

以下示例比较清单的 LISTTIME 和 SALETIME。对于所有上架项，TIMESTAMP\$1CMP 的值都是 `-1`，因为销售的时间戳都在上架时间戳之后。

```
select listing.listid, listing.listtime,
sales.saletime, timestamp_cmp(listing.listtime, sales.saletime)
from listing, sales
where listing.listid=sales.listid
order by 1, 2, 3, 4
limit 10;

 listid |      listtime       |      saletime       | timestamp_cmp
--------+---------------------+---------------------+---------------
      1 | 2008-01-24 06:43:29 | 2008-02-18 02:36:48 |            -1
      4 | 2008-05-24 01:18:37 | 2008-06-06 05:00:16 |            -1
      5 | 2008-05-17 02:29:11 | 2008-06-06 08:26:17 |            -1
      5 | 2008-05-17 02:29:11 | 2008-06-09 08:38:52 |            -1
      6 | 2008-08-15 02:08:13 | 2008-08-31 09:17:02 |            -1
     10 | 2008-06-17 09:44:54 | 2008-06-26 12:56:06 |            -1
     10 | 2008-06-17 09:44:54 | 2008-07-10 02:12:36 |            -1
     10 | 2008-06-17 09:44:54 | 2008-07-16 11:59:24 |            -1
     10 | 2008-06-17 09:44:54 | 2008-07-22 02:23:17 |            -1
     12 | 2008-07-25 01:45:49 | 2008-08-04 03:06:36 |            -1
(10 rows)
```

此示例显示 TIMESTAMP\$1CMP 对于相同的时间戳返回 0：

```
select listid, timestamp_cmp(listtime, listtime)
from listing
order by 1 , 2
limit 10;

 listid | timestamp_cmp
--------+---------------
      1 |             0
      2 |             0
      3 |             0
      4 |             0
      5 |             0
      6 |             0
      7 |             0
      8 |             0
      9 |             0
     10 |             0
(10 rows)
```