sql - 有没有办法使用 BigQuery 的 DAYOFWEEK 但以星期一为第一天?

标签 sql google-bigquery

我目前正在尝试使用以下查询将日期列映射到它的星期几,其中星期一为 1,星期日为 7:

EXTRACT(DAYOFWEEK FROM dates)AS day_of_week

但是,根据 BQ 的文档,该函数似乎使用星期日作为一周的第一天。有没有办法在我的查询中不使用条件表达式并手动调整结果的情况下优雅地解决这个问题?

BQ 文档:

DAYOFWEEK:返回 [1,7] 范围内的值,星期日作为一周的第一天。

最佳答案

您可以将 FORMAT_DATE()%u 格式说明符一起使用:

FORMAT_DATE('%u', dates)

The documentation%u 描述为:

The weekday (Monday as the first day of the week) as a decimal number (1-7).

关于sql - 有没有办法使用 BigQuery 的 DAYOFWEEK 但以星期一为第一天?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59497967/

相关文章:

sql - 查找 Postgres 数组中所有位置的所有元素的出现次数(计数)?

mysql - SQL结构和日历?

sql - 关于性能的子查询 VS 连接

google-bigquery - 是否可以在 python 客户端中调用 BigQuery 程序?

如果找到行,MySQL 在表上相交,否则忽略

sql - 为什么 SQL Management Studio 添加交叉连接?

google-bigquery - 是否可以在 BigQuery Web 控制台中设置默认区域?

google-bigquery - 从基于用户的配置文件更新

python - 在 Python 中将 JSON 转换为换行符分隔的 JSON

google-bigquery - 使用带有空字段的数据流进行 Bigquery 流式插入