読者です 読者をやめる 読者になる 読者になる

サイエンティストとマーケターのはざま

Pythonとか広告とかデータ分析とかとか


SQLでyyyyMMdd hh:mm形式からdate型に変換する

TreasureData サーバ SQL

Treasure DataのPresto、Hiveを使っていたところ、datetime型からdate型に変換しようとcastしたところ、エラーになってしまいました。

よくみると、datetime型のyyyyMMdd hh:mm:ss形式ではなく、yyyyMMdd hh:mmでデータが格納されており、これがcastでdate型に変換する際のエラーの原因と考えました。

convertとかformatするとかいろいろ試したのですが、全部ダメで、唯一実行できたのが以下です。

 cast(substr('2016-04-18 18:00', 1, 10) as date)

ええ、もはや文字列として扱う以外なく、yyyy-MM-ddの文字を取得し、date型にcastしたらなんとかなりました。