【发布时间】:2012-02-25 06:00:38
【问题描述】:
一直试图找出一个选择查询来显示星期几,例如星期一、星期二、星期三等。我最终得到了一个显示星期几的选择查询,
select ((date_trunc('week',current_date)::date) + (i+6)) as week_date
from generate_Series(0,6) i;
有没有办法得到周一、周二等的结果。
【问题讨论】:
标签: sql postgresql
一直试图找出一个选择查询来显示星期几,例如星期一、星期二、星期三等。我最终得到了一个显示星期几的选择查询,
select ((date_trunc('week',current_date)::date) + (i+6)) as week_date
from generate_Series(0,6) i;
有没有办法得到周一、周二等的结果。
【问题讨论】:
标签: sql postgresql
只需使用extract:
extract(dow from date_column::timestamp)
from whatever_table;
这将返回 0 代表星期日,1 代表星期一,...,6 代表星期六。
编辑: 或者,因为您显然不需要任何实际需要从给定日期获取星期几的东西,而您只需要一个具有表示名称的固定字符串值的列星期几,只需创建一个表...
【讨论】:
"Sunday"、"Monday" 等,就可以完成了。
从 Postgres 9 开始,有:
to_char(date, 'dy');
这会将您的日期作为文本值返回到星期几
【讨论】:
to_char() 会给你一个 char 例如select '|' || to_char(current_date, 'Day') || '|'; 会给你|Tuesday | - 所以你可能需要/想要修剪。
你可以这样做:
VALUES ('Sunday'), ('Monday'), ('Tuesday'), ('Wednesday'), ('Thursday'), ('Friday'), ('Saturday');
【讨论】:
以下查询也有效
select to_char((date_trunc('week',current_date)::date) + i,'Day') as wkday from generate_series(0,6) i
【讨论】:
to_char() 会给你一个 char 例如select '|' || to_char(current_date, 'Day') || '|'; 会给你|Tuesday | - 所以你可能需要/想要修剪。
创建您取消嵌套的单个字段数组
select day_of_week
from unnest(
array
['Sunday',
'Monday',
'Tuesday',
'Wednesday',
'Thursday',
'Friday',
'Saturday']
) as day_of_week
【讨论】: