如何在PostgreSQL中获取周周期(一周开始到周末)?



>我有一个格式为"2018-10-04"的日期列"visit_date"。

我需要派生格式的"周开始到周末"列 "10 月 1 日至 10 月 7 日"或"10 月 1 日至 10 月 7 日",这意味着 我需要连接 2 个日期 - 一周开始和周末帖子,我需要排除日期的"年"部分。

在这里看到了答案。它部分符合我的要求,答案是"2018-09-03 至 2018-09-09">

SELECT date_trunc('week', visit_date)::date || ' -> '|| (date_trunc('week', visit_date)+ '6 days'::interval)::date as WeekPeriod

如果您只需要格式化日期,则需要to_char(https://www.postgresql.org/docs/current/static/functions-formatting.html(:

SELECT to_char(your_date, 'Mon FMDD')     --> Oct 1    
SELECT to_char(your_date, 'FMDDth Mon')   --> 1st Oct

演示:数据库<>小提琴

Mon给出了三个字母的月份

DD给一天

FM前缀删除前导零

thsuppif 添加了 "st"、"nd"、"rd"、"th" 结尾

select to_char(date_trunc('week', visit_date),'YYYY-MM-DD')||'->'||
to_char((date_trunc('week', visit_date)+ '6 days'::interval),'YYYY-MM-DD') weekPeriod

这里的关键是to_char,它允许自定义日期格式。

通常不需要存储这种类型的数据,因为它可以在将来以与上面插入相同的方式进行查询,如果您确实需要对此信息进行查询,最好将它们存储为日期而不是字符串,但是,上面的查询将满足您描述的需求。

最新更新