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

Supabase Cron Job日期字段递增操作失效问题求助

Supabase Cron Job日期字段更新失败问题排查

问题背景

已创建两个Supabase Cron Job:

  • 第一个任务运行正常:

    SELECT cron.schedule('Every minute testcron','*/1 * * * *', $$UPDATE testcron SET number = number + 1 $$)
    

    每分钟执行,将testcron表的number(整数类型)字段加1。

  • 第二个任务未生效:

    SELECT cron.schedule('Every minute','*/1 * * * *', $$UPDATE testcronwithdate SET Date = Date + interval '1 day'$$)
    

    预期每分钟执行,将testcronwithdate表的Date(date类型)字段加1天,但日期未更新。

已确认两个任务均存在(通过select * from cron.job;查询),且未启用RLS。

问题原因

PostgreSQL中,date类型与interval相加的结果是timestamp类型,直接将timestamp值赋值给date字段时,会因类型不匹配导致更新语句静默执行失败,Cron Job默认不会主动抛出这类错误提示。

解决方案

方案1:使用date类型原生加法逻辑

PostgreSQL支持直接给date类型字段加整数表示天数,修改任务语句为:

SELECT cron.schedule('Every minute','*/1 * * * *', $$UPDATE testcronwithdate SET Date = Date + 1 $$)

方案2:显式转换结果类型

如果需要保留interval写法,需将计算结果显式转换为date类型:

SELECT cron.schedule('Every minute','*/1 * * * *', $$UPDATE testcronwithdate SET Date = (Date + interval '1 day')::date $$)

验证任务执行状态

执行以下语句查看任务执行日志,确认是否存在其他报错:

SELECT * FROM cron.job_run_details WHERE jobname = 'Every minute' ORDER BY start_time DESC;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 16:35:15