私はタイムスタンプデータ型の列を日付データ型に変換しようとしています:
bq query -q --destination_table=NEW_DATE_TABLE --replace "SELECT DATE(CURR_DT) AS CURR_DT from TEST.DATE_TABLE"
新しいテーブルでは、列がSTRING
ではなくdate
として表示されます。タイムスタンプをdate
データ型に変換する方法はありますか?.
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
以下を検討してください!
レガシー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フィールドの詳細を提供してください