

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

# 日期、时间和时间戳文本
<a name="r_Date_and_time_literals"></a>

以下是用于处理 Amazon Redshift 支持的日期、时间和时间戳文本的规则。

## 日期
<a name="r_Date_and_time_literals-dates"></a>

下列输入日期是您可加载到 Amazon Redshift 表中的 DATE 数据类型的文本日期值的所有有效示例。默认 `MDY DateStyle` 模式被认为是有效的。此模式意味着在字符串中，月份值将位于日期值之前，如 `1999-01-08` 和 `01/02/00`。

**注意**  
当您将日期或时间戳文本加载到表中时，这些文本必须用引号括起来。


| 输入日期  | 完整日期  | 
| --- | --- | 
| 1999 年 1 月 8 日  | 1999 年 1 月 8 日  | 
| 1999-01-08  | 1999 年 1 月 8 日  | 
| 1/8/1999  | 1999 年 1 月 8 日  | 
| 01/02/00  | 2000 年 1 月 2 日  | 
| 2000-Jan-31  | 2000 年 1 月 31 日  | 
| Jan-31-2000  | 2000 年 1 月 31 日  | 
| 31-Jan-2000  | 2000 年 1 月 31 日  | 
| 20080215  | 2008 年 2 月 15 日  | 
| 080215  | 2008 年 2 月 15 日  | 
| 2008.366  | 2008 年 12 月 31 日（三位数的日期部分必须介于 001 和 366 之间）  | 

## Times
<a name="r_Date_and_time_literals-times"></a>

下列输入时间是您可加载到 Amazon Redshift 表中的 TIME 和 TIMETZ 数据类型的文本时间值的所有有效示例。


| 输入时间  | 描述（时间部分）  | 
| --- | --- | 
|  04:05:06.789  | 上午 4:05 过 6.789 秒  | 
|  04:05:06  | 上午 4:05 过 6 秒  | 
|  04:05  | 恰好上午 4:05  | 
|  040506  | 上午 4:05 过 6 秒  | 
|  04:05 AM  | 恰好上午 4:05；AM 为可选  | 
|  04:05 PM  | 恰好下午 4:05；小时值必须小于 12 | 
|  16:05  | 恰好下午 4:05  | 

## 时间戳
<a name="r_Date_and_time_literals-timestamps"></a>

下列输入时间戳是您可加载到 Amazon Redshift 表中的 TIMESTAMP 和 TIMESTAMPTZ 数据类型的文本时间值的所有有效示例。所有有效的日期文本可与下列时间文本组合。


| 输入时间戳（连接在一起的日期和时间）  | 描述（时间部分）  | 
| --- | --- | 
|  20080215 04:05:06.789  | 上午 4:05 过 6.789 秒  | 
|  20080215 04:05:06  | 上午 4:05 过 6 秒  | 
|  20080215 04:05  | 恰好上午 4:05  | 
|  20080215 040506  | 上午 4:05 过 6 秒  | 
|  20080215 04:05 AM  | 恰好上午 4:05；AM 为可选  | 
|  20080215 04:05 PM  | 恰好下午 4:05；小时值必须小于 12 | 
| 20080215 16:05  | 恰好下午 4:05  | 
| 20080215  | 午夜（默认情况）  | 

## 特殊日期时间值
<a name="r_Date_and_time_literals-special-datetime-values"></a>

下列特殊值可用作日期时间文本和日期函数的参数。它们需要单引号，并在查询处理期间转换为常规时间戳值。


| 特殊值 | 描述  | 
| --- | --- | 
| now  | 计算结果为当前事务的开始时间并返回具有微秒精度的时间戳。 | 
| today  | 计算结果为相应的日期并返回时间部分为零的时间戳。 | 
| tomorrow  | 计算结果为相应的日期并返回时间部分为零的时间戳。 | 
| yesterday  | 计算结果为相应的日期并返回时间部分为零的时间戳。 | 

以下示例演示 `now` 和 `today` 如何与 DATEADD 函数结合使用。

```
select dateadd(day,1,'today');

date_add
---------------------
2009-11-17 00:00:00
(1 row)

select dateadd(day,1,'now');

date_add
----------------------------
2009-11-17 10:45:32.021394
(1 row)
```