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

获取本地时间已过中午12点的用户列表逻辑咨询

筛选本地时间已过中午12点用户的逻辑思路

核心逻辑转换

  • 本质是判断用户本地时间的当日时间 ≥ 12:00,可以把时间统一转换成「当日总分钟数」来简化计算:
    • 第一步:计算当前UTC时间的当日总分钟数(比如UTC 7am就是7×60=420分钟,UTC 5am就是5×60=300分钟)
    • 第二步:用户本地时间的当日总分钟数 = UTC当日总分钟数 + 用户的UTC偏移量(分钟)
    • 第三步:处理跨天情况:如果计算结果≥1440(一天的总分钟数),取模1440;如果结果为负,加1440转成当日有效分钟数
    • 第四步:判断转换后的本地当日总分钟数 ≥ 720(12×60,即中午12点的总分钟数),符合条件的用户就是目标结果

数据库查询思路

  • 直接在PostgreSQL中完成计算,避免全量拉取数据:
    • 用PostgreSQL函数获取当前UTC时间的当日总分钟数:EXTRACT(EPOCH FROM CURRENT_TIME AT TIME ZONE 'UTC')::INTEGER % 1440
    • 计算用户本地当日总分钟数:(utc_day_minutes + "offset" + 1440) % 1440(加1440是为了处理负数偏移导致的负结果)
    • 筛选条件设为该计算值 ≥ 720,返回对应的用户ID

Sequelize代码思路

  • 借助sequelize.literal()将上述SQL计算逻辑嵌入查询条件:
    • 在findAll的where选项中,用literal写数据库层面的计算表达式
    • 只指定返回用户ID字段,提升查询效率

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 07:01:28