web-dev-qa-db-ja.com

Google Bigqueryでタイムスタンプを日付データ型に変換する方法

私はタイムスタンプデータ型の列を日付データ型に変換しようとしています:

bq query -q --destination_table=NEW_DATE_TABLE --replace "SELECT DATE(CURR_DT) AS CURR_DT from TEST.DATE_TABLE"

新しいテーブルでは、列がSTRINGではなくdateとして表示されます。タイムスタンプをdateデータ型に変換する方法はありますか?.

リクエストされたスクリーンショット

6
DWPro

Standard SQL を使用すると、次のことができます。

SELECT * REPLACE(EXTRACT(DATE FROM curr_dt)) AS curr_dt FROM test.date_table

Curr_dtが反復フィールドの場合、ソリューションは次のようになります。

SELECT * REPLACE(
  ARRAY(
    SELECT EXTRACT(DATE FROM curr_dt) FROM t.curr_dt
  ) AS curr_dt)
FROM test.date_table t
7

以下を検討してください!
レガシーSQLと標準SQLの両方で機能します

SELECT CAST(DATE(CURR_DT) AS DATE) AS CURR_DT FROM TEST.DATE_TABLE

コメントに追加しました

以下で試してください-上記で述べたように、それはレガシーとスタンダードの両方で機能します

SELECT CAST(DATE(CURR_DT) AS DATE) AS CURR_DT
FROM (SELECT CURRENT_TIMESTAMP() AS CURR_DT)  

レガシーSQLを使用してケースを作成することに関心がある場合-CURR_DTフィールドの詳細を提供してください

6