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

求助:每日SQL查询中自动变更日期筛选条件的实现方法

自动更新筛选条件中的日期部分解决方案

嘿,这事儿不难搞定!核心思路就是用SQL里的「当前日期函数」代替硬编码的日期,再拼接上你固定的15:00:00时间,这样每天运行查询时,日期部分会自动匹配当天(或者你需要的相对日期)。

我根据常见的SQL引擎给你分情况说明:

情况1:如果你用的是BigQuery(从你的表命名风格看大概率是这个)

BigQuery里用CURRENT_DATE()获取当前日期,然后拼接成完整的时间戳,替换原来的硬编码日期:

-- 筛选条件改成这样
date_add(a.Order_date,4,"Hour") > TIMESTAMP(CONCAT(CURRENT_DATE(), ' 15:00:00'))

或者用更简洁的写法,直接组合日期和时间:

date_add(a.Order_date,4,"Hour") > DATETIME(CURRENT_DATE(), TIME(15,0,0))

把你的完整查询修改后就是这样(我补全了你省略的关联部分,记得根据实际情况调整关联条件):

SELECT 
  a.order as Order_Number,
  unique(b.status_name) as Status, 
  date_add(a.Order_date,4,"Hour") as Ordered_Date, 
  date_add(a.Export_date,4,"Hour") as Exported_Date, 
  date_add(a.Dispatch_date,4,"Hour") as Dispatched_Date 
FROM [ops_views.Order_Timeline] as a 
LEFT JOIN [ops_views.sales_order_items] as b
ON a.order = b.order -- 这里的关联条件请根据你的实际表结构调整
WHERE date_add(a.Order_date,4,"Hour") > TIMESTAMP(CONCAT(CURRENT_DATE(), ' 15:00:00'))

情况2:如果你用的是MySQL

MySQL用CURDATE()获取当前日期,拼接成字符串后直接作为筛选值:

-- 筛选条件
DATE_ADD(a.Order_date, INTERVAL 4 HOUR) > CONCAT(CURDATE(), ' 15:00:00')

情况3:如果你用的是PostgreSQL

PostgreSQL里直接用CURRENT_DATE加上固定时间即可:

-- 筛选条件
a.Order_date + INTERVAL '4 hours' > CURRENT_DATE + TIME '15:00:00'

额外提示:如果需要筛选「前一天15点之后」的数据

很多时候每日运行查询是要统计前一天的内容,这时候只要给日期函数减1天就行。比如BigQuery里改成:

date_add(a.Order_date,4,"Hour") > TIMESTAMP(CONCAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY), ' 15:00:00'))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:52:29