PostgreSQL to_timestamp() 函数使用指南
PostgreSQL to_timestamp()
函数将 Unix 纪元时间转为一个标准的带时区信息的时间戳,或者根据给定的格式将指定的字符串转为时间戳。
to_timestamp()
语法
PostgreSQL to_timestamp ()
函数有两种语法形式:
to_timestamp(unix_epoch DOUBLE) -> TIMESTAMP WITH TIME ZONE
或者
to_timestamp(str TEXT, format TEXT) -> TIMESTAMP WITH TIME ZONE
参数
unix_epoch
- 必需的。 Unix 纪元时间(从 1970-01-01 00:00:00+0 开始的秒数)。
str
- 必需的。 一个时间字符串。
format
-
必需的。 转换这个时间字符串所采用的格式。您可以使用下表中的模板模式来构造格式字符串。
模式 描述 HH
一天中的小时 (01–12) HH12
一天中的小时 (01–12) HH24
一天中的小时 (00–23) MI
分钟 (00–59) SS
秒 (00–59) MS
毫秒 (000–999) US
微秒(000000–999999) FF1
十分之一秒 (0–9) FF2
百分之一秒 (00–99) FF3
毫秒 (000–999) FF4
十分之一毫秒 (0000–9999) FF5
百分之一毫秒 (00000–99999) FF6
微秒(000000–999999) SSSS
,SSSSS
午夜过后几秒钟 (0–86399) AM
,am
,PM
,pm
上午、下午(无句点) A.M.
,a.m.
,P.M.
,p.m.
上午、下午(带句点) Y,YYY
年份(4 位或更多位数字),带逗号 YYYY
年份(4 位或更多数字) YYY
年份的最后 3 位数字 YY
年份的最后 2 位数字 Y
年份的最后一位数字 IYYY
ISO 8601 周编号年份(4 位或更多位) IYY
ISO 8601 周编号年份的最后 3 位数字 IY
ISO 8601 周编号年份的最后 2 位数字 I
ISO 8601 周编号年份的最后一位数字 BC
,bc
,AD
,ad
公元前、公元后(无句点) B.C.
,b.c.
,A.D.
,a.d.
公元前、公元后(带句点) MONTH
全大写月份名称(空白填充为 9 个字符) Month
全大写月份名称(空白填充为 9 个字符) month
全小写月份名称(空白填充为 9 个字符) MON
缩写大写月份名称(英文 3 个字符,本地化长度各不相同) Mon
缩写大写月份名称(英文 3 个字符,本地化长度不同) mon
缩写小写月份名称(英文 3 个字符,本地化长度不同) MM
月数 (01–12) DAY
全大写的日期名称(空白填充为 9 个字符) Day
全大写的日期名称(空白填充为 9 个字符) day
全小写的日期名称(空白填充为 9 个字符) DY
缩写的大写的日期名称(3 个英文字符,本地化长度各不相同) Dy
缩写的大写的日期名称(3 个英文字符,本地化长度各不相同) dy
缩写的小写的日期名称(3 个英文字符,本地化长度各不相同) DDD
一年中的一天 (001–366) IDDD
ISO 8601 周编号年份的一天(001–371;一年中的第 1 天是第一个 ISO 周的星期一) DD
月中的某一天 (01–31) D
星期几,星期日 ( 1
) 到星期六 (7
)ID
ISO 8601 星期几,星期一 ( 1
) 到星期日 (7
)W
每月的一周 (1–5) (第一周从该月的第一天开始) WW
一年中的周数 (1–53) (第一周从一年的第一天开始) IW
ISO 8601 周编号年份的周号(01–53;一年中的第一个星期四在第 1 周) CC
世纪(2 位数字)(二十一世纪开始于 2001-01-01) J
儒略历日期(自公元前 4714 年 11 月 24 日当地午夜以来的整数天) Q
季度 RM
大写罗马数字形式的月份(I 到 XII; I 是 1 月) rm
小写罗马数字形式的月份 (i 到 xii; i 是 1 月) TZ
大写时区缩写(仅 to_char
支持)tz
小写时区缩写(仅 to_char
支持)TZH
时区小时 TZM
时区分钟 OF
时区与 UTC 的偏移量(仅 to_char
支持)
返回值
PostgreSQL to_timestamp()
函数返回一个带有时区信息的时间戳值,它从一个字符串根据指定的格式转换而来。
to_timestamp()
示例
转换 Unix 纪元时间
本示例展示了如何使用 PostgreSQL to_timestamp()
函数将一个 Unix 纪元时间转为一个标准的带时区信息的时间戳并返回。
SELECT to_timestamp(1652704873);
to_timestamp
------------------------
2022-05-16 20:41:13+08
转换时间字符串
本示例展示了如何使用 PostgreSQL to_timestamp()
函数根据指定的格式将一个指定的时间字符串转换为一个时间戳值。
示例 1
SELECT to_timestamp('2022-05-17', 'YYYY-MM-DD');
to_timestamp
------------------------
2022-05-17 00:00:00+08
示例 2
SELECT to_timestamp('2022-05-17 10:10:10.022.000001', 'YYYY-MM-DD HH:MI:SS.MS.US');
to_timestamp
-------------------------------
2022-05-17 10:10:10.022001+08