

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

# \$1（串联）运算符
<a name="r_DATE-CONCATENATE_function"></a>

将 DATE 连接到 \$1 符号任一侧的 TIME 或 TIMETZ，并返回 TIMESTAMP 或 TIMESTAMPTZ。

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

```
date + {time | timetz}
```

参数的顺序可以反转。例如，*time* \$1 *date*。

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

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

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

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

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

如果输入为 *date* \$1 *time*，则为 TIMESTAMP。

如果输入为 *date* \$1 *timetz*，则为 TIMESTAMPTZ。

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

### 示例设置
<a name="r_DATE-CONCATENATE_function-example-setup"></a>

要设置示例中使用的 TIME\$1TEST 和 TIMETZ\$1TEST 表，请使用以下命令。

```
create table time_test(time_val time);

insert into time_test values
('20:00:00'),
('00:00:00.5550'),
('00:58:00');
   
create table timetz_test(timetz_val timetz);
   
insert into timetz_test values
('04:00:00+00'),
('00:00:00.5550+00'),
('05:58:00+00');
```

### 具有时间列的示例
<a name="r_DATE-CONCATENATE_function-examples-time"></a>

下面的示例表 TIME\$1TEST 具有一个列 TIME\$1VAL（类型 TIME），其中插入了三个值。

```
select time_val from time_test;
            
time_val
---------------------
20:00:00
00:00:00.5550
00:58:00
```

以下示例串联一个日期文本和一个 TIME\$1VAL 列。

```
select date '2000-01-02' + time_val as ts from time_test;
            
ts
---------------------
2000-01-02 20:00:00
2000-01-02 00:00:00.5550
2000-01-02 00:58:00
```

以下示例串联一个日期文本和一个时间文本。

```
select date '2000-01-01' + time '20:00:00' as ts;
            
         ts
---------------------
 2000-01-01 20:00:00
```

以下示例串联一个时间文本和一个日期文本。

```
select time '20:00:00' + date '2000-01-01' as ts;
            
         ts
---------------------
 2000-01-01 20:00:00
```

### 具有 TIMETZ 列的示例
<a name="r_DATE-CONCATENATE_function-examples-timetz"></a>

下面的示例表 TIMETZ\$1TEST 具有一个列 TIMETZ\$1VAL（类型 TIMETZ），其中插入了三个值。

```
select timetz_val from timetz_test;
            
timetz_val
------------------
04:00:00+00
00:00:00.5550+00
05:58:00+00
```

以下示例串联一个日期文本和一个 TIMETZ\$1VAL 列。

```
select date '2000-01-01' + timetz_val as ts from timetz_test;
ts
---------------------
2000-01-01 04:00:00+00
2000-01-01 00:00:00.5550+00
2000-01-01 05:58:00+00
```

以下示例串联一个 TIMETZ\$1VAL 列和一个日期文本。

```
select timetz_val + date '2000-01-01' as ts from timetz_test;
ts
---------------------
2000-01-01 04:00:00+00
2000-01-01 00:00:00.5550+00
2000-01-01 05:58:00+00
```

以下示例串联一个 DATE 文本和一个 TIMETZ 文本。该示例返回 TIMESTAMPTZ，默认情况下它采用 UTC 时区。UTC 比 PST 早 8 小时，因此结果比输入时间早 8 小时。

```
select date '2000-01-01' + timetz '20:00:00 PST' as ts;
            
           ts
------------------------
 2000-01-02 04:00:00+00
```