2017-01-12 38 views
1

Amazon AlexaからISO 8601の形式で入力しましたが、文字列部分文字列&の変換をBigQueryタイムスタンプ形式に変換する必要がある場合は迷っていましたか、それとも何らかの機能がありますか?BigQueryでISO 8601を日付形式に変換する方法はありますか?

2015-W49を日付にするのは難しいと思っていますが、私は尋ねると思っていました。

参照:ここで説明するよう https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/slot-type-reference#date https://en.wikipedia.org/wiki/ISO_8601#Dates https://code.google.com/p/google-bigquery/issues/detail?id=208

答えて

0

私は結果の下に期待このような変換は、それぞれの週の最初の日であり、 houldはそれぞれ可能:

Week Date in ISO 8601 First Day of the week  
2015-W01    2014-12-28 
2015-W02    2015-01-04 
2015-W49    2015-11-29 

あなたは一例

ためhttp://www.enpicbcmed.eu/calendar/2015-W01で上記確認することができ、私は戻って正しい結果

#standardSQL 
WITH data AS (
    SELECT '2015-W01' AS dt UNION ALL 
    SELECT '2015-W02' AS dt UNION ALL 
    SELECT '2015-W49' AS dt 
) 
SELECT 
    dt, 
    DATE_ADD(PARSE_DATE("%Y-W%W", dt), 
      INTERVAL 7 * CAST(SUBSTR(dt,-2,2) AS INT64) - 6 - 
      EXTRACT (DAYOFWEEK FROM PARSE_DATE("%Y-W%W", dt)) DAY 
) as d 
FROM data 
ORDER BY dt 
+0

@hoggkmの下だと思う - あなたは試してみましたか? –

+0

この回答は、週に基づいて日付を計算するために最も正確です。潜在的なすべてのISO 8601フォーマットを普遍的に解析するためには、多くのコードケースステートメント/追加のコーディングが必要です。潜在的なISO 8601の日付をとり、BigQueryタイムスタンプ形式を返す組み込み関数が存在することを望んでいました。 – hoggkm

+0

@hoggkmに同意すると、私も直接ワンステップ変換を見つけることができませんでした。私の答えがあなたを助け、あなたがそれを受け入れた場合は、それを投票することも検討してください - http://stackoverflow.com/help/someone-answersおよびhttp://meta.stackexchange.com/questions/5234のUpvoteセクションをご覧ください/答えを受け入れる方法#5235 –

関連する問題