繁体   English   中英

如何在bigquery中根据年、周数和日创建日期

How to create date based on year, week number and day in bigquery

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

如何在 Bigquery 查询中从年、周数和日值形成日期。

例如 -年 = 2019,周数 = 37 天 = 星期三。

输出: (2019-09-18)

年 = 2019,周数 = 36 天 = 星期二。

输出: (2019-09-10)

这里的月份将从周计算,日期将基于给定日期在该周的时间。

注意: Bigquery 从 0 开始一周,所以如果检查上面的值以在另一个系统中进行比较,它可能是 38 和 37

2 个回复

下面是 BigQuery 标准 SQL

#standardSQL
WITH `project.dataset.table` AS (
  SELECT 2019 year, 37 week, 'Wednesday' day UNION ALL
  SELECT 2019, 36, 'Tuesday' 
)
SELECT *, 
  (
    SELECT DATE_ADD(DATE_ADD(DATE(year, 1, 1), INTERVAL week WEEK), INTERVAL hit DAY)         
    FROM UNNEST(GENERATE_ARRAY(0, 6)) hit
    WHERE FORMAT_DATE('%A', DATE_ADD(DATE_ADD(DATE(year, 1, 1), INTERVAL week WEEK), INTERVAL hit DAY)) = day
  ) AS result
FROM `project.dataset.table`  

结果为

Row year    week    day         result   
1   2019    37      Wednesday   2019-09-18   
2   2019    36      Tuesday     2019-09-10   

不应该是这样的week-1

WITH tbl AS (
  SELECT 2020 year, 21 week, 'Friday' day
)
SELECT *, 
  (
    SELECT DATE_ADD(DATE_ADD(DATE(year, 1, 1), INTERVAL week-1 WEEK), INTERVAL hit DAY)         
    FROM UNNEST(GENERATE_ARRAY(0, 6)) hit
    WHERE FORMAT_DATE('%A', DATE_ADD(DATE_ADD(DATE(year, 1, 1), INTERVAL week-1 WEEK), INTERVAL hit DAY)) = day
  ) AS result
FROM tbl

否则返回下周的日期

1 根据星期数和年份获取特定日期的日期

我从外部来源获得年份和“一年中的一周”,但我无法更改。 我想得到那个具体星期的星期一和星期日的日期。 现在,我已经获得了以下代码,但是看起来很复杂。 <?php // simulate the server data $year = date('Y'); $week = 19; ...

2 在PHP中的年份,星期数和星期几

我从我的数据库中提取了三条信息,年份,星期数(1-52)和星期几(星期一,星期二,星期三)。 我需要将其转换为日期。 我将如何在PHP中执行此操作? ...

2014-02-10 12:41:17 3 196   php/ date
5 在VB中将日期,星期数和年份转换为日期

我需要转换年,周号和日期的帮助。 因此,如果date1为1990,wN为12,而dDay为3,则结果应为3/21/1990(mm / dd / yyyy格式)。 我在找到此行的正确格式时遇到问题: Output(Date(date1, 1, 1) + ((wN - 1) * 7) - W ...

2018-06-04 18:08:31 1 406   vb.net
6 结合年,月,周和日期

我有以下数据框: 当天缩写是Mon , Tues , Weds , Thurs , Fri , Sat , Sun 。 我想生成另一列,以yyyy-mm-dd格式提供日期。 我怎样才能做到这一点? 提前致谢! ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM