我创建了一个schedule
表,
CREATE TABLE schedule (
id uuid NOT NULL DEFAULT uuid_generate_v4(),
title varchar(200) NOT NULL,
monday bool NOT NULL DEFAULT false,
tuesday bool NOT NULL DEFAULT false,
wednesday bool NOT NULL DEFAULT false,
thursday bool NOT NULL DEFAULT false,
friday bool NOT NULL DEFAULT false,
saturday bool NOT NULL DEFAULT false,
sunday bool NOT NULL DEFAULT false,
);
字符串
现在我想运行一个查询和过滤器的时间表下降到那些当前一周的一天是真的,但不知道如何。
我试过的是下面的查询让我知道星期几。
select ('{sunday,monday,tuesday,wednesday,thursday,friday,saturday}'::text[])[date_part('dow', current_date) + 1]
型
但我不能
select * from schedule
where ('{sunday,monday,tuesday,wednesday,thursday,friday,saturday}'::text[])[date_part('dow', current_date) + 1] = true
型
你如何过滤的时间表,其中的当前日期的一周是真的?
1条答案
按热度按时间2ic8powd1#
您根本不需要使用文本,只需构建一个包含7个工作日列的布尔值的数组,并将
where
条件设置为使用该值。字符串