2012-02-25 342 views
16

一直在試圖找出一個選擇查詢顯示星期幾,如週一,週二,週三,等我結束了顯示星期的日期選擇查詢,獲取星期幾PostgreSQL中

select ((date_trunc('week',current_date)::date) + (i+6)) as week_date 
    from generate_Series(0,6) i; 

有沒有辦法得到週一,週二等的結果。

回答

4

你可以做到這:

VALUES ('Sunday'), ('Monday'), ('Tuesday'), ('Wednesday'), ('Thursday'), ('Friday'), ('Saturday'); 
46

只需使用extract

extract(dow from date_column::timestamp) 
from whatever_table; 

這代表星期日,1星期六返回0代表星期一,......,6。

編輯:或者,因爲你顯然不需要任何事實上需要抓取給定日期的星期幾,並且你只想要一個固定字符串值的列表示日期的名稱本週,只需創建一個表...

+0

嗨傑克,我不想天的數值,而不是我需要的查詢將所有七天返回爲'Sunday''Mononday'等。你能否提出其他可能性? – Reena 2012-02-25 06:33:54

+0

@Flourida - 正如我在Edwin的答案的評論部分指出的那樣,如果你不需要這些動態生成的,那麼你爲什麼試圖在SQL中做到這一點?只需打印出「星期天」,「星期一」等字符串,然後完成。 – 2012-02-25 06:35:19

+0

在不同列中打印值。我怎樣才能得到它在單列? – Reena 2012-02-25 06:39:19

1

下面的查詢也適用

select to_char((date_trunc('week',current_date)::date) + i,'Day') as wkday from generate_series(0,6) i 
37

在Postgres的9起有:

to_char(date, 'dy');

這將回報您的日期爲星期幾的文本值