to_date()
是一个系统函数,用于使用指定的格式将日期的字符串表示形式转换为 DATE
数据类型。
to_date()
在 PostgreSQL 7.0 中添加。
用法
to_date (text
,text
) →date
to_date()
使用指定的格式将提供的字符串转换为 DATE
值;有关详细信息,请参阅PostgreSQL文档部分 日期/时间格式化模板模式。
请注意,许多标准日期格式可以通过简单的强制转换转换为 DATE
值;to_date()
主要用于转换格式不明确或无法通过强制转换转换的日期。
更改历史记录
- PostgreSQL 10
- 输入字段范围检查得到加强(提交 d3cd36a1)
- PostgreSQL 7.0
- 添加(提交 b866d2e2)
示例
to_date()
的基本用法示例
postgres=# SELECT to_date('25 Dec 2020', 'DD Mon YYYY'); to_date ------------ 2020-12-25 (1 row)
请注意,许多常见的日期格式可以通过简单的强制转换进行转换,例如:
postgres=# SELECT '7/4/2021'::DATE; date ------------ 2021-04-07 (1 row)
但是,如果源日期采用非标准表示形式,例如美国常用的 月
/日
/年
样式,则需要使用 to_date()
postgres=# SELECT to_date('7/4/2021', 'MM/DD/YYYY'); to_date ------------ 2021-07-04 (1 row)
尝试转换无效的日期表示形式
postgres=# SELECT to_date('99 Dec 2020', 'DD Mon YYYY'); ERROR: date/time field value out of range: "99 Dec 2020"
参考文献
- PostgreSQL 文档: 格式化函数
- PostgreSQL 文档: 日期/时间格式化模板模式
有用链接
- ISO 8601 - XKCD 的视觉解释