從 PostgreSQL 中的日期欄位中提取星期幾
-
在 PostgreSQL 中使用
EXTRACT
從日期欄位中提取星期幾 -
在 PostgreSQL 中使用
To_CHAR()
函式從字串中獲取日期 -
在 PostgreSQL 中使用
CASE
定義TIMESTAMPS
的天數劃分
我們將在本教程中學習如何從 PostgreSQL 表中給出的 DATEFIELD
中查詢星期幾。我們還將學習不同的操作,你可以使用這些操作來操作和使用 DATEFIELD
中的資料。
我們使用 EXTRACT
函式來執行此類操作,它從具有 DATE
的 STRING
中檢索子欄位。讓我們看看如何使用它。
在 PostgreSQL 中使用 EXTRACT
從日期欄位中提取星期幾
要提取星期幾,我們可以使用 DOW
或 ISODOW
。DOW
使用 SUNDAY
作為開始日期從 0 開始日期,但是 ISODOW
使用 MONDAY
並將 SUNDAY
列為 7。
查詢:
select extract (isodow from timestamp '2022-03-25');
這使用 TIMESTAMP
獲取星期幾並返回。
輸出:
因此,在 2022 年 3 月 25 日
,如果你從 SUNDAY
開始編號為 0
,那麼當天是 Friday
,你會看到 FRIDAY
是 5
。
現在假設我們選擇 SUNDAY
作為我們的一天。在這種情況下,DOW
將返回 0
,而 ISODOW
將返回 7
,因為它們的模式不同。
你也可以自己測試這些值:
select extract (isodow from timestamp '2022-03-28') as iso_dow, extract (dow from timestamp '2022-03-28') as d_ow;
假設你希望 MONDAY
具有值 0
。在這樣的問題中,你可以使用以下語句:
select extract (isodow from timestamp '2022-03-21') - 1;
在 TUESDAY
的情況下,你將減去 2,依此類推。
在 PostgreSQL 中使用 To_CHAR()
函式從字串中獲取日期
返回日期名稱的另一個函式是 To_CHAR()
。
查詢:
select to_char(timestamp '2022-03-25', 'DAY');
輸出:
查詢:
select to_char(timestamp '2022-03-25', 'DY');
使用上面的查詢將返回 FRI
而不是 FRIDAY
。你可以閱讀第二個引數中可能使用的關鍵字。
要獲取 DAY
,僅使用以下程式碼。
查詢:
select to_char(timestamp '2022-03-25', 'D');
PostgreSQL 文件的摘錄如下:
to_char(..., 'ID')'s day of the week numbering matches the extract(isodow from ...) function, but to_char(..., 'D')'s does not match extract(dow from ...)'s day numbering.
這意味著即使模式匹配,呼叫 D
作為第二個引數也不匹配 DOW
語法。
在 PostgreSQL 中使用 CASE
定義 TIMESTAMPS
的天數劃分
下面的程式碼使用了 EXTRACT
方法的擴充套件版本。
查詢:
with a as (select extract(dow from date '2022-02-21') a ),
b as(select CASE
WHEN a.a = 0 THEN 'Sunday'
WHEN a.a = 1 THEN 'Monday'
WHEN a.a = 2 THEN 'Tuesday'
WHEN a.a = 3 THEN 'Wednesday'
WHEN a.a = 4 THEN 'Thursday'
WHEN a.a = 5 THEN 'Friday'
WHEN a.a = 6 THEN 'Saturday'
END from a )
select * from a, b;
它獲取值 a
,然後 for b
檢查 a
是否與給定的 CASE
語句匹配。該值被複制到 b
中(如果有)。
這將返回如下所示的輸出。
輸出:
我們希望你現在瞭解可用於從任何給定的 STRING
中提取星期幾的各種方法。
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub