在 PostgreSQL 中将字符串转换为日期 DD/MM/YYYY
强制转换是将一种数据类型转换为另一种数据类型的过程。在 PostgreSQL 中,我们不能为日期列指定格式,但我们可以在检索数据时指定我们想要的日期格式。
当不直接在数据库上工作时,我们还可以在应用程序的逻辑中指定我们想要的格式。本教程展示了如何使用与创建数据时不同的格式来检索日期。
在 PostgreSQL 中将字符串转换为日期 DD/MM/YYYY
使用以下命令登录 PostgreSQL 服务器。
david@david-HP-ProBook-6470b:~$ psql -U postgres
Password for user postgres:
输入用户 postgres
的密码,然后按键盘上的 Enter 按钮。
psql (14.2 (Ubuntu 14.2-1.pgdg18.04+1))
Type "help" for help.
postgres=#
创建一个名为 date_db
的数据库,其中将包含具有日期列的实体。将以下 SQL 命令复制并粘贴到你的终端上,然后按键盘上的 Enter 按钮。
postgres=# create database date_db;
CREATE DATABASE
连接到 date_db
数据库以确保在我们创建的数据库上执行查询。使用以下命令连接到 date_db
数据库。
postgres=# \c date_db;
You are now connected to database "date_db" as user "postgres".
创建一个名为 image
的表,其中包含字段 id
、width
、height
和 created_at
。字段 id
、width
和 height
是类型 integer
,而 created_at
是类型 date
。
date_db=# create table image(id SERIAL NOT NULL, width integer, height integer, created_at date, PRIMARY KEY(id));
CREATE TABLE
将图像实例的记录插入到 image
表中。将以下 SQL 命令复制并粘贴到你的终端上,然后按键盘上的 Enter 按钮。
请注意,在创建列 created_at
期间未指定日期格式。
date_db=# insert into image(width, height, created_at) values(200,400,'2022-03-29');
INSERT 0 1
我们在向 image
表中插入一条记录时使用了 YYYY-MM-DD
格式。
在 PostgreSQL 中执行查询时使用 to_char
格式化日期
to_char
是一个 PostgreSQL 格式化函数。该函数可以重载不同的数据类型以返回,例如 text
或 date
。
将以下 SQL 命令复制并粘贴到你的终端上,然后按键盘上的 Enter 按钮。
date_db=# select to_char("created_at", 'DD/MM/YYYY') from image;
to_char
------------
29/03/2022
(1 row)
to_char
函数接受两个参数,一个包含日期的列和日期格式模式,用于在 select
查询期间格式化日期。
请注意,我们使用格式 DD/MM/YYYY
从数据库中检索我们的数据,并使用格式 YYYY-MM-DD
将我们的数据插入数据库。
另一种更改显示格式的方法是使用 DateStyle
,但不建议这样做,因为它会影响 PostgreSQL 数据库中日期的解析方式。
David is a back end developer with a major in computer science. He loves to solve problems using technology, learning new things, and making new friends. David is currently a technical writer who enjoys making hard concepts easier for other developers to understand and his work has been published on multiple sites.
LinkedIn GitHub