2017-03-01 10 views
0

のために、私はフォーマット2016年2月13日にビッグクエリにインポート日付情報とデータを持っている、2012年3月4日などビッグクエリの正規表現は、日付ETL

私は次のように日付の形式に変換したいです02-12- 2016および03-04-2012。 は、私は新しい列を作成し、同じのための正規表現を使用するクエリを使用します。

私は(2)2012年2月4日の

^のようなもの(\ dの{1})となります正規表現は、最初の部分に一致するように知っている(/ | - )

レッグEXに私は、新しい列を作成するREGEXP_EXTRACTとREGEXP_REPLACEと共にこれら2正規表現を使用する方法を疑問に思って

(/)(\ dの{1})(/)

あろう/と第2の部分と一致これらの日付は正しい形式です。

答えて

1

それはちょうどDATE型の列に変換するのが最も簡単かもしれません。

#standardSQL 
SELECT 
    PARSE_DATE('%m/%d/%Y', date_string) AS date 
FROM (
    SELECT '2/13/2016' AS date_string UNION ALL 
    SELECT '3/4/2012' AS date_string 
); 

別のオプション - あなたは文字列として日付を維持したい場合は - REPLACEを使用することです:たとえば

#standardSQL 
SELECT 
    REPLACE(date_string, '/', '-') AS date 
FROM (
    SELECT '2/13/2016' AS date_string UNION ALL 
    SELECT '3/4/2012' AS date_string 
); 
+0

PARSE_DATE( '%のM /%D /%Y' を選択、DATE_STRINGは)私たちのために働いていた。これがあなたのために働いていた場合は、必要に応じてupvote受け入れ(としてくださいエリオット –

+1

たくさんありがとうございました)答えを。 [StackOverflowヘルプセンター](http://stackoverflow.com/help/someone-answers)で詳細を読むことができます。ありがとう! –