從 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');
輸出:
%60-Function-to-Get-the-Day-From-a-String-in-PostgreSQL.webp)
查詢:
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