在 PostgreSQL 中將字串轉換為日期 DD/MM/YYYY

David Mbochi Njonge 2023年1月30日
  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