DATE_PART 函数 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

DATE_PART 函数

DATE_PART 从表达式中提取日期部分值。DATE_PART 是 PGDATE_PART 函数的同义词。

语法

DATE_PART(datepart, {date|timestamp})

参数

datepart

函数所操作的日期值的特定部分(例如年、月或日)的标识符文本或字符串。有关更多信息,请参阅日期或时间戳函数的日期部分

{date|timestamp}

日期列、时间戳列或隐式转换为日期或时间戳的表达式。datetimestamp 的列或表达式必须包含 datepart 中指定的日期部分。

返回类型

DOUBLE

示例

DATE_PART 函数的默认列名是 pgdate_part

有关以下示例中使用的数据的更多信息,请参阅示例数据库

以下示例从时间戳文本中查找分钟。

SELECT DATE_PART(minute, timestamp '20230104 04:05:06.789'); pgdate_part ----------- 5

以下示例从时间戳文本中查找周编号。周编号计算遵循 ISO 8601 标准。有关更多信息,请参阅 Wikipedia 中的 ISO 8601

SELECT DATE_PART(week, timestamp '20220502 04:05:06.789'); pgdate_part ----------- 18

以下示例从时间戳文本中查找月份中的某个日期。

SELECT DATE_PART(day, timestamp '20220502 04:05:06.789'); pgdate_part ----------- 2

下面的示例从时间戳文本中查找星期几信息。星期几的计算是 0-6 之间的整数,从星期日开始。

SELECT DATE_PART(dayofweek, timestamp '20220502 04:05:06.789'); pgdate_part ----------- 1

以下示例从时间戳文本中查找世纪。世纪计算遵循 ISO 8601 标准。有关更多信息,请参阅 Wikipedia 中的 ISO 8601

SELECT DATE_PART(century, timestamp '20220502 04:05:06.789'); pgdate_part ----------- 21

以下示例从时间戳文本中查找千禧年。千禧年计算遵循 ISO 8601 标准。有关更多信息,请参阅 Wikipedia 中的 ISO 8601

SELECT DATE_PART(millennium, timestamp '20220502 04:05:06.789'); pgdate_part ----------- 3

以下示例从时间戳文本中查找微秒。微秒计算遵循 ISO 8601 标准。有关更多信息,请参阅 Wikipedia 中的 ISO 8601

SELECT DATE_PART(microsecond, timestamp '20220502 04:05:06.789'); pgdate_part ----------- 789000

以下示例从日期文本中查找月份。

SELECT DATE_PART(month, date '20220502'); pgdate_part ----------- 5

以下示例将 DATE_PART 函数应用于表中的列。

SELECT date_part(w, listtime) AS weeks, listtime FROM listing WHERE listid=10 weeks | listtime ------+--------------------- 25 | 2008-06-17 09:44:54 (1 row)

您可以用全名或缩写来命名日期部分;在这种情况下,w 代表星期数。

星期日期部分返回一个从 0-6 整数,从星期日开始。将 DATE_PART 与 dow (DAYOFWEEK) 结合使用以查看星期六的活动。

SELECT date_part(dow, starttime) AS dow, starttime FROM event WHERE date_part(dow, starttime)=6 ORDER BY 2,1; dow | starttime -----+--------------------- 6 | 2008-01-05 14:00:00 6 | 2008-01-05 14:00:00 6 | 2008-01-05 14:00:00 6 | 2008-01-05 14:00:00 ... (1147 rows)