如何在BigQuery中更新DayofWeek列填充ActivityDate对应的星期几?
解决BigQuery中更新日期对应星期列的问题
直接使用UPDATE语句结合你已验证的FORMAT_DATE函数即可完成列更新,正确的语句如下:
UPDATE `bellabeat-case-study-2-376122.fitbit_data.daily_activity` SET DayofWeek = FORMAT_DATE('%A', ActivityDate) WHERE TRUE; -- 更新所有行,若需指定范围可替换为对应过滤条件
关键说明:
- 你已经通过查询确认
FORMAT_DATE('%A', ActivityDate)能正确返回星期全称,直接将这个表达式赋值给DayofWeek列即可。 WHERE TRUE是更新全表的写法,如果你只想更新非空日期的行,可以改成WHERE ActivityDate IS NOT NULL,避免因空值导致的潜在报错。- 若你的
ActivityDate是字符串类型而非DATE类型,需要先做类型转换,比如:
不过从你的查询语句能正常运行来看,SET DayofWeek = FORMAT_DATE('%A', PARSE_DATE('%Y-%m-%d', ActivityDate))ActivityDate应该已经是DATE类型,无需额外转换。
内容的提问来源于stack exchange,提问作者Jose Aldana
相关产品推荐
相关产品推荐

