NetSuite已保存搜索:基于日期获取一周首日的公式实现
解决方案
要实现显示Week of 10/16这样的效果,核心是先计算出目标日期所在周的首日,再将其格式化为MM/DD格式——你之前用的mm-w格式符只会输出月份和当月周数,并非周首日,所以才得到错误结果。
针对Airtable(字段格式为{shipdate})
使用以下公式字段:
'Week of ' || FORMAT_DATE('MM/DD', DATEADD({shipdate}, -(WEEKDAY({shipdate}) - 2), 'days'))
- 逻辑说明:
WEEKDAY({shipdate})返回日期对应的星期编号(周日=1,周一=2,周六=7)- 减去
(WEEKDAY({shipdate}) - 2)天,将日期调整到当周周一;如果你的周以周日为起始,把公式里的2改成1即可 - 最后格式化并拼接成目标字符串
针对SQL环境
Oracle
'Week of ' || TO_CHAR(TRUNC({shipdate}, 'IW'), 'MM/DD')
TRUNC({shipdate}, 'IW')会把日期截断到ISO周的首日(周一);若需以周日为周首日,替换为TRUNC({shipdate}, 'W')
PostgreSQL
'Week of ' || TO_CHAR(date_trunc('week', {shipdate}), 'MM/DD')
date_trunc('week', ...)默认以周一为周首日,若需调整可结合interval手动偏移日期
用示例日期10/19/2023测试,以上公式均会输出Week of 10/16,完全符合需求。
内容的提问来源于stack exchange,提问作者Cody Schram
相关产品推荐
相关产品推荐

