本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
DATE_PART 函数
DATE_PART 从表达式中提取日期部分值。DATE_PART 是 PGDATE_PART 函数的同义词。
语法
DATE_PART(datepart, {date|timestamp})
参数
- datepart
-
函数所操作的日期值的特定部分(例如年、月或日)的标识符文本或字符串。有关更多信息,请参阅日期或时间戳函数的日期部分。
- {date|timestamp}
-
日期列、时间戳列或隐式转换为日期或时间戳的表达式。date 或 timestamp 的列或表达式必须包含 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
下面的示例从时间戳文本中查找星期几信息。周编号计算遵循 ISO 8601 标准。有关更多信息,请参阅 Wikipedia 中的 ISO 8601
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)