如何在 PostgreSQL 中获取周期间(周开始到周末)?
How to get week period (Week Start to Weekend) in PostgreSQL?
我有一个格式为“2018-10-04”的日期列 'visit_date'。
我需要导出格式的 "Week-Start to Week-End" 列
"Oct 1 to Oct 7" 或“10 月 1 日至 10 月 7 日”,这意味着
我需要连接 2 个日期 - 周开始和周结束 post,我需要排除日期的 "Year" 部分。
Saw an answer here. 部分符合我的要求,答案是“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
前缀删除前导零
th
suppif 添加 "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,它允许自定义日期格式。
这类数据一般不需要存储,以后可以像上面插入的那样查询,如果确实需要查询这些信息,最好将它们存储为日期而不是字符串,但是,上面的查询将满足您描述的需求。
我有一个格式为“2018-10-04”的日期列 'visit_date'。
我需要导出格式的 "Week-Start to Week-End" 列 "Oct 1 to Oct 7" 或“10 月 1 日至 10 月 7 日”,这意味着 我需要连接 2 个日期 - 周开始和周结束 post,我需要排除日期的 "Year" 部分。
Saw an answer here. 部分符合我的要求,答案是“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
前缀删除前导零
th
suppif 添加 "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,它允许自定义日期格式。
这类数据一般不需要存储,以后可以像上面插入的那样查询,如果确实需要查询这些信息,最好将它们存储为日期而不是字符串,但是,上面的查询将满足您描述的需求。