Skip to content

PostgreSQL to_timestamp() 函数 ​

PostgreSQL to_timestamp() 函数将 Unix 纪元时间转为一个标准的带时区信息的时间戳,或者根据给定的格式将指定的字符串转为时间戳。

to_timestamp() 语法 ​

PostgreSQL to_timestamp () 函数有两种语法形式:

sql
to_timestamp(unix_epoch DOUBLE) -> TIMESTAMP WITH TIME ZONE

或者

sql
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年份的最后一位数字IYYYISO 8601 周编号年份(4 位或更多位)IYYISO 8601 周编号年份的最后 3 位数字IYISO 8601 周编号年份的最后 2 位数字IISO 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)IDDDISO 8601 周编号年份的一天(001–371;一年中的第 1 天是第一个 ISO 周的星期一)DD月中的某一天 (01–31)D星期几,星期日 (1) 到星期六 (7)IDISO 8601 星期几,星期一 (1) 到星期日 (7)W每月的一周 (1–5) (第一周从该月的第一天开始)WW一年中的周数 (1–53) (第一周从一年的第一天开始)IWISO 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 纪元时间转为一个标准的带时区信息的时间戳并返回。

sql
SELECT to_timestamp(1652704873);
sql
      to_timestamp
------------------------
 2022-05-16 20:41:13+08

转换时间字符串 ​

本示例展示了如何使用 PostgreSQL to_timestamp() 函数根据指定的格式将一个指定的时间字符串转换为一个时间戳值。

示例 1 ​

sql
SELECT to_timestamp('2022-05-17', 'YYYY-MM-DD');
sql
      to_timestamp
------------------------
 2022-05-17 00:00:00+08

示例 2 ​

sql
SELECT to_timestamp('2022-05-17 10:10:10.022.000001', 'YYYY-MM-DD HH:MI:SS.MS.US');
sql
         to_timestamp
-------------------------------
 2022-05-17 10:10:10.022001+08