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

如何在BigQuery中按星期几条件执行指定SQL查询?

实现仅周二运行SQL查询的方案

一、SQL语句层面直接判断

通过数据库的日期函数获取当前日期的星期属性,仅当为周二时返回查询结果,非周二则返回空集。不同数据库的星期函数逻辑略有差异,以下是常见场景的写法:

1. BigQuery(匹配示例语法风格)

BigQuery 中 EXTRACT(DAYOFWEEK FROM CURRENT_DATE()) 返回规则为:周日=1,周一=2,周二=3。修改后的查询如下:

WITH cte AS (
  SELECT account_create_date, COUNT(user_name) AS new_accounts_count
  FROM `users_account`
  WHERE users_status = 2
  GROUP BY 1
)
SELECT * FROM cte
WHERE EXTRACT(DAYOFWEEK FROM CURRENT_DATE()) = 3

2. MySQL

MySQL 中 WEEKDAY(CURDATE()) 返回规则为:周一=0,周二=1;也可使用 DAYOFWEEK(CURDATE())(周日=1,周二=3)。示例写法:

WITH cte AS (
  SELECT account_create_date, COUNT(user_name) AS new_accounts_count
  FROM `users_account`
  WHERE users_status = 2
  GROUP BY account_create_date
)
SELECT * FROM cte
WHERE WEEKDAY(CURDATE()) = 1

二、调度工具层面控制(更可靠)

如果查询是通过调度工具(如Airflow、Cloud Scheduler、云平台定时任务等)触发的,直接在调度配置中设置每周二执行即可。这种方式无需修改SQL,从根源上避免非周二执行,还能规避时区、日期函数差异等潜在问题。

比如在Airflow中,可使用Cron表达式设置调度规则:0 0 * * 2(代表每周二凌晨0点执行)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 07:20:29