在 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