在 PostgreSQL 中将字符串转换为日期 DD/MM/YYYY

David Mbochi Njonge 2023年1月30日 2022年5月14日
  1. 在 PostgreSQL 中将字符串转换为日期 DD/MM/YYYY
  2. 在 PostgreSQL 中执行查询时使用 to_char 格式化日期
在 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 的表,其中包含字段 idwidthheightcreated_at。字段 idwidthheight 是类型 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 格式化函数。该函数可以重载不同的数据类型以返回,例如 textdate

将以下 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 Mbochi Njonge avatar David Mbochi Njonge avatar

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

相关文章 - PostgreSQL Date