如何将日期截断到一周的开始(星期日)?
How to truncate a date to the beginning of week (Sunday)?
我需要将日期截断到一周的开始,在我的例子中是星期天。我如何在 PostgreSQL 中执行此操作?这截断到星期一:
date_trunc('week', mydate)
您可以将日期截断为一周的星期一,然后减去 1 天,例如:
SELECT (date_trunc('week', now() + interval '1 day') - interval '1 day')::DATE;
date
------------
2019-06-16
根据 documentation,date_trunc()
接受类型 date
和 timestamp
和 returns a timestamp
的值(因此在结束)。
如果您从当前日期中减去 dow
值(0
表示星期日,6
表示星期六),那么您得到的是前一个星期日,也就是您 Sunday-based周
SELECT
my_date - date_part('dow', my_date)::int
FROM
my_table
我需要将日期截断到一周的开始,在我的例子中是星期天。我如何在 PostgreSQL 中执行此操作?这截断到星期一:
date_trunc('week', mydate)
您可以将日期截断为一周的星期一,然后减去 1 天,例如:
SELECT (date_trunc('week', now() + interval '1 day') - interval '1 day')::DATE;
date
------------
2019-06-16
根据 documentation,date_trunc()
接受类型 date
和 timestamp
和 returns a timestamp
的值(因此在结束)。
如果您从当前日期中减去 dow
值(0
表示星期日,6
表示星期六),那么您得到的是前一个星期日,也就是您 Sunday-based周
SELECT
my_date - date_part('dow', my_date)::int
FROM
my_table