首页 > 解决方案 > 有没有办法使用 BigQuery 的 DAYOFWEEK 但将星期一作为第一天?

问题描述

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

EXTRACT(DAYOFWEEK FROM dates) AS day_of_week

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

BQ 文档:

DAYOFWEEK: Returns values in the range [1,7] with Sunday as the first day of the week.

标签: sqlgoogle-bigquery

解决方案


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

FORMAT_DATE('%u', dates)

该文档描述%u为:

以十进制数 (1-7) 表示的工作日(星期一为一周的第一天)。


推荐阅读