sql - 过滤掉 PostgreSQL 中指定星期几的记录

标签 sql database postgresql date inner-query

我有内部查询,它根据条件之间的日期返回指定的日期。我成功获得了结果,但在外部查询中我想检查日期是否在我提供的字符串中 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');

最佳答案

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 中的周日期返回值如下:

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 标准的一部分。

关于sql - 过滤掉 PostgreSQL 中指定星期几的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57089771/

相关文章:

sql - 选择最新的测量结果

php - Laravel 5 与 PostgreSQL

java - Android PHP 向 MySQL 发出请求

sql - 我将如何在 MS SQL 中执行此条件连接?

python - 使用 mysql 连接器 python,网络抓取将值插入数据库

c# - 是否有 Silverlight 支持的平面文件数据库?

php - ORDER按钮(mysqli/PHP),不同的按钮相同的div

sql - 什么是更快的查询(选择名称....或选择顶部(1)名称

sql - 大表中行之间的时间差

arrays - 根据条件从 json 数组中提取的求和值