在Postgresql中获取一周中的几天

时间:2012-02-25 06:00:39

标签: sql postgresql

一直在试图找出一个选择查询来显示星期几,例如星期一,星期二,星期三等等。我最终得到一个显示一周日期的选择查询,

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

有没有办法将结果作为星期一,星期二等等。

5 个答案:

答案 0 :(得分:46)

只需使用extract

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

这为星期日返回0,星期一返回1,星期六返回6,

编辑或者,因为您显然不需要任何实际需要从给定日期抓取星期几的内容,而您只需要一个具有固定字符串值的单个列代表名称一周的日子,只需创建一个表......

答案 1 :(得分:44)

在Postgres 9之后,有:

to_char(date, 'dy');

将您的日期作为文本值

返回到星期几

答案 2 :(得分:6)

你可以做到:

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

答案 3 :(得分:2)

以下查询也适用

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

答案 4 :(得分:1)

创建您嵌套的单个字段数组

select day_of_week
from unnest(
array
  ['Sunday',
    'Monday',
    'Tuesday',
    'Wednesday',
    'Thursday',
    'Friday',
   'Saturday']
) as day_of_week