

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

# 在 DATEFORMAT 和 TIMEFORMAT 中使用自动识别
<a name="automatic-recognition"></a>

如果您指定 `'auto'` 作为 DATEFORMAT 或 TIMEFORMAT 参数的参数，Amazon Redshift 将自动识别并转换源数据中的日期格式或时间格式。下面是一个示例。

```
copy favoritemovies from 'dynamodb://ProductCatalog' 
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
dateformat 'auto';
```

在与 DATEFORMAT 和 TIMEFORMAT 的 `'auto'` 参数一起使用时，COPY 将识别并转换在 [DATEFORMAT 和 TIMEFORMAT 字符串示例](r_DATEFORMAT_and_TIMEFORMAT_strings.md) 中的表中列出的日期和时间格式。此外，`'auto'` 参数将识别下列在使用 DATEFORMAT 和 TIMEFORMAT 字符串时不受支持的格式。


| 格式  | 有效输入字符串的示例  | 
| --- | --- | 
| ISO 8601  | 2019-02-11T05:09:12.195Z | 
| Julian  | J2451187 | 
| BC | Jan-08-95 BC | 
| YYYYMMDD HHMISS | 19960108 040809  | 
| YYMMDD HHMISS | 960108 040809 | 
| YYYY.DDD | 1996.008 | 
| YYYY-MM-DD HH:MI:SS.SSS  | 1996-01-08 04:05:06.789 | 
| DD Mon HH:MI:SS YYYY TZ | 17 Dec 07:37:16 1997 PST | 
| MM/DD/YYYY HH:MI:SS.SS TZ | 12/17/1997 07:37:16.00 PST | 
| YYYY-MM-DD HH:MI:SS\+/-TZ | 1997-12-17 07:37:16-08 | 
| DD.MM.YYYY HH:MI:SS TZ | 12.17.1997 07:37:16.00 PST | 

自动识别不支持 epochsec 和 epochmillisec。

要测试是否将自动转换日期或时间戳值，请使用 CAST 函数尝试将字符串转换为日期或时间戳值。例如，下列命令测试时间戳值 `'J2345678 04:05:06.789'`：

```
create table formattest (test char(21));
insert into formattest values('J2345678 04:05:06.789');
select test, cast(test as timestamp) as timestamp, cast(test as date) as date from formattest;

        test          |      timestamp      |	date
----------------------+---------------------+------------
J2345678 04:05:06.789   1710-02-23 04:05:06	1710-02-23
```

如果 DATE 列的源数据包含时间信息，则将截断时间部分。如果 TIMESTAMP 列的源数据省略时间信息，则将使用 00:00:00 作为时间部分。