You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL如何获取指定年份对应周数第一天的Unix时间戳

你可以通过to_date()函数指定周相关的格式模板来构造对应周的第一天日期,再转换为Unix时间戳,示例如下:

核心实现(ISO周标准,周一为一周第一天)

ISO周是业界最常用的周计数规则:每年第1周为包含当年第一个周四的周,每周第一天为周一,周数范围为1~53。

-- 获取1980年第3周第一天的Unix时间戳
EXTRACT(epoch FROM to_date('1980 3', 'IYYY IW')::timestamp)

格式模板说明:

  • IYYY:匹配ISO周对应的4位年份,可避免跨年周的计算偏差
  • IW:ISO标准周数

自定义周规则调整

如果你的业务场景中周第一天为周日,可在上述基础上减1天即可:

-- 周第一天为周日时,1980年第3周第一天的Unix时间戳
EXTRACT(epoch FROM (to_date('1980 3', 'IYYY IW') - INTERVAL '1 day')::timestamp)

动态传参写法

如果年份和周数是字段值/动态变量,可通过字符串拼接构造入参:

EXTRACT(epoch FROM to_date(CONCAT(年份字段, ' ', 周数字段), 'IYYY IW')::timestamp)

内容的提问来源于stack exchange,提问作者sharkyenergy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 16:06:08