Skip to content

BigQueryで型変更します

型変更

SQL
SELECT 
  -- ARRAY:ARRAY型
  -- 
  CAST(value as FLOAT64) 
FROM
  tablename
型名_SQL型名
ARRAYARRAY型
BIGNUMERIC小数部分のある正確な数値
BOOL
BYTES2バイト数列
DATE日付
DATETIME時間付き日付('2019-05-02 12:48:35')
FLOAT64小数点
INT64整数
INTERVAL時間隔(interval '1 hour' * int '3' = interval '03:00')
NUMERIC数値(小数点前までは131072桁、小数点以降は16383桁)
STRING文字列
STRUCT構造型
TIME時刻型('HH:MM:SS')
TIMESTAMP国別時間付き日付('2019-05-02 12:48:35' UTC)

DATETIME型とTIMESTAMP型の違い

DATETIME型TIMESTAMP型
'1000-01-01 00:00:00' ~ '9999-12-31 23:59:59''1970-01-01 00:00:01' UTC ~ '2038-01-19 03:14:07' UTC

STRUCT | 構造型 例

!(STRUCT.png)

SQL
SELECT
  user_id,
  event_params.key,
FROM
  sample_table

文字列をBIGNUMERICに変換

SQL
SELECT PARSE_BIGNUMERIC("123.45") AS parsed

+--------+
| parsed |
+--------+
| 123.45 |
+--------+

SELECT PARSE_BIGNUMERIC("  -  12.34 ") as parsed;

+--------+
| parsed |
+--------+
| -12.34 |
+--------+

SELECT PARSE_BIGNUMERIC("12.34e-1-") as parsed;

+--------+
| parsed |
+--------+
| -1.234 |
+--------+

SELECT PARSE_BIGNUMERIC(".1234  ") as parsed;

+--------+
| parsed |
+--------+
| 0.1234 |
+--------+

文字列をNUMERICに変換

SQL
-- This example shows how a string with a decimal point is parsed.
SELECT PARSE_NUMERIC("123.45") AS parsed

+--------+
| parsed |
+--------+
| 123.45 |
+--------+

-- This example shows how a string with an exponent is parsed.
SELECT PARSE_NUMERIC("12.34E27") as parsed

+-------------------------------+
| parsed                        |
+-------------------------------+
| 12340000000000000000000000000 |
+-------------------------------+

-- This example shows the rounding when digits after the decimal point exceeds 9.
SELECT PARSE_NUMERIC("1.0123456789") as parsed

+-------------+
| parsed      |
+-------------+
| 1.012345679 |
+-------------+

SAFE_CAST

エラーとなる場合はNULLで出力される

SQL
SELECT SAFE_CAST("apple" AS INT64) AS not_a_number;

+--------------+
| not_a_number |
+--------------+
| NULL         |
+--------------+

その他の変換関数

変換関数型変換の前型変換の後
ARRAY_TO_STRINGARRAYSTRING
BOOLJSONBOOL
DATEさまざまなデータ型DATE
DATETIMEさまざまなデータ型DATETIME
FLOAT64JSONFLOAT64
FROM_BASE32STRINGBYTES
FROM_BASE64STRINGBYTES
FROM_HEXSTRINGBYTES
INT64JSONINT64
PARSE_DATESTRINGDATE
PARSE_DATETIMESTRINGDATETIME
PARSE_JSONSTRINGJSON
PARSE_TIMESTRINGTIME
PARSE_TIMESTAMPSTRINGTIMESTAMP
SAFE_CONVERT_BYTES_TO_STRINGBYTESSTRING
STRINGTIMESTAMPSTRING
STRINGJSONSTRING
TIMEさまざまなデータ型TIME
TIMESTAMPさまざまなデータ型TIMESTAMP
TO_BASE32BYTESSTRING
TO_BASE64BYTESSTRING
TO_HEXBYTESSTRING
TO_JSONすべてのデータ型JSON
TO_JSON_STRINGすべてのデータ型。STRING

参考サイト

関数、演算子、条件

BigQueryでカラム(列)の型変換を行う方法