LoginSignup
5
0

More than 3 years have passed since last update.

Treasure DataのPRESTO(SQL)でCREATE TABLEする時のタイムスタンプ項目について

Last updated at Posted at 2019-09-05

PRESTOで、 CREATE TABLE実行時に、タイムスタンプ項目があると、エラー になリます。
クエリを書いていて、何度か同じ現象に悩まされることがあったので、対処方法をメモしておきます。

※2019/10/1追記 PRESTO/hiveを利用した場合は上記問題は起こりません。

やりたい事

CREATE TABLE実行時にタイムスタンプ項目のフォーマットを変更してエラー回避する

サンプルコード

DROP TABLE IF EXISTS temp_tbl1;
CREATE TABLE temp_tbl1
AS 

SELECT
  id
  , target_date
  -- DATE_FORMAT関数でレイアウトをVARCHARに変換する→これでCREATE TABLEのエラーを回避可能
  , DATE_FORMAT(target_date_to_1week, '%Y-%m-%d %H:%i:%s') AS target_date_to_1week
FROM
  (
  SELECT 
    id
    , target_date
    -- DATE_ADDで1週間後の日時を取得する場合、このアウトプットはタイムスタンプ項目になる
    , DATE_ADD('week', 1, CAST(target_date AS TIMESTAMP)) AS target_date_to_1week 
  FROM
   table
  )
5
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0