2016 년 마지막 주부터 날짜별로 날짜 를 YYYYWW
형식 으로 변환해야 합니다.
#standardSQL
WITH Input AS (
SELECT date
FROM UNNEST([
DATE '2016-12-26',
DATE '2016-12-27',
DATE '2016-12-28',
DATE '2016-12-29',
DATE '2016-12-30',
DATE '2016-12-31',
DATE '2017-01-01']) AS date
)
SELECT
date,
CAST(FORMAT_DATE('%Y%V', CAST(date AS DATE)) AS STRING) AS YearWeek,
CAST(FORMAT_DATE('%Y', CAST(date AS DATE)) AS STRING) AS Year,
CAST(FORMAT_DATE('%V', CAST(date AS DATE)) AS STRING) AS
FROM Input
ORDER BY date
모두 OK, 도달 할 때까지 2017-01-01
:
Row date YearWeek Year Week
1 2016-12-26 201652 2016 52
2 2016-12-27 201652 2016 52
3 2016-12-28 201652 2016 52
4 2016-12-29 201652 2016 52
5 2016-12-30 201652 2016 52
6 2016-12-31 201652 2016 52
7 2017-01-01 201752 2017 52
' 201752
'는 ' '이어야합니다 201652
.
과거 날짜에 대해 자동화하는 가장 좋은 방법은 무엇입니까?
이 같은:
IF (REGEXP_EXTRACT(date,r'\d{4}-\d{2}-(\d{2})') = CAST('01' AS STRING)
AND Week = CAST('52' AS STRING), Year-1, Year)
다음은 BigQuery 표준 SQL 용입니다.
#standardSQL
WITH Input AS (
SELECT DATE
FROM UNNEST([
DATE '2016-12-26',
DATE '2016-12-27',
DATE '2016-12-28',
DATE '2016-12-29',
DATE '2016-12-30',
DATE '2016-12-31',
DATE '2017-01-01']) AS date
)
SELECT
date,
FORMAT_DATE('%G%V', date) AS YearWeek
FROM Input
ORDER BY date
또한 주 - 예제 :
1. 당신이 할 필요가 없습니다 CAST(date AS DATE)
로 date
이미 형 DATE입니다
필요하지 않은 2 CAST(FORMAT_DATE(...) AS STRING)
로 FORMAT_DATE
이미 반환STRING
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다