过滤掉 PostgreSQL 中指定星期几的记录
Filter out records in specified day of week in PostgreSQL
我有内部查询,它根据条件之间的日期返回指定的日期。我成功获得了结果,但在外部查询中我想检查日期是否在我提供的字符串中 ex-'Friday,Saturday'
SELECT * from
(
SELECT id, to_char(markupdate, 'Day') as dayofweek
FROM test t
WHERE t.markupdate BETWEEN 'Thu Jul 11 00:00:00 IST 2019' AND 'Sat Jul 20 00:00:00 IST 2019'
) data
WHERE data.dayofweek in ('Friday,Sunday');
您可以使用正则表达式将 data.dayofweek
与您要查找的字符串(Friday
、Sunday
)相匹配。你甚至不需要你的子查询,类似的东西也应该有效:
SELECT id, to_char(markupdate, 'Day') as dayofweek
FROM test t
WHERE t.markupdate BETWEEN '2019-07-11 00:00:00+0530' AND '2019-07-20 00:00:00+0530'
AND dayofweek~'(Friday|Sunday)';
有关更多背景信息,请查看 Postgres docs。
SELECT id, to_char(markupdate, 'Day') as dayofweek
FROM test t
WHERE t.markupdate BETWEEN 'Thu Jul 11 00:00:00 IST 2019' AND 'Sat Jul 20 00:00:00 IST 2019'
AND date_part('dow', markupdate) in (5,0);
postgres 中的周日期 return 值如下:
0 Sunday
1 Monday
2 Tuesday
3 Wednesday
4 Thursday
5 Friday
6 Saturday
您可以使用更标准的 SQL EXTRACT('dow' FROM markupdate)
而不是 date_part('dow', markupdate)
,但是 dow
是一个扩展,不是 SQL 标准的一部分。
我有内部查询,它根据条件之间的日期返回指定的日期。我成功获得了结果,但在外部查询中我想检查日期是否在我提供的字符串中 ex-'Friday,Saturday'
SELECT * from
(
SELECT id, to_char(markupdate, 'Day') as dayofweek
FROM test t
WHERE t.markupdate BETWEEN 'Thu Jul 11 00:00:00 IST 2019' AND 'Sat Jul 20 00:00:00 IST 2019'
) data
WHERE data.dayofweek in ('Friday,Sunday');
您可以使用正则表达式将 data.dayofweek
与您要查找的字符串(Friday
、Sunday
)相匹配。你甚至不需要你的子查询,类似的东西也应该有效:
SELECT id, to_char(markupdate, 'Day') as dayofweek
FROM test t
WHERE t.markupdate BETWEEN '2019-07-11 00:00:00+0530' AND '2019-07-20 00:00:00+0530'
AND dayofweek~'(Friday|Sunday)';
有关更多背景信息,请查看 Postgres docs。
SELECT id, to_char(markupdate, 'Day') as dayofweek
FROM test t
WHERE t.markupdate BETWEEN 'Thu Jul 11 00:00:00 IST 2019' AND 'Sat Jul 20 00:00:00 IST 2019'
AND date_part('dow', markupdate) in (5,0);
postgres 中的周日期 return 值如下:
0 Sunday
1 Monday
2 Tuesday
3 Wednesday
4 Thursday
5 Friday
6 Saturday
您可以使用更标准的 SQL EXTRACT('dow' FROM markupdate)
而不是 date_part('dow', markupdate)
,但是 dow
是一个扩展,不是 SQL 标准的一部分。