タイムスタンプの秒を切り捨てて00秒にする方法について

ユーザー11852
編集済: 5月 2023 仲間に相談

ETLの「スクリプトを追加」を使用して、タイプスタンプの秒部分を一律で00にしたいです。


例を挙げると、2020-06-08T21:10:30 というタイムスタンプの秒を00にして2020-06-08T21:10:00としたいです。


DATE_FORMAT(concat(YEAR(`originally_published_at(JST)`),'/',MONTH(`originally_published_at(JST)`),'/',DAY(`originally_published_at(JST)`),' ',HOUR(`originally_published_at(JST)`),':',MINUTE(`originally_published_at(JST)`),':00'),'%Y-%m-%d %H:%i:%s')


上記のようなスクリプトを書いたのですが、

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

値「21:11:00」をタイプ「文字列」からタイプ「タイムスタンプ」に変換できませんでした。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

というエラーが出てしまいました。

エラーの解決方法をご教示いただけないでしょうか。

よろしくお願いいたします。

答え

  • すいません、エラーメッセージが間違っていました。

    (色んな方法で検証していたので別のエラーを書いてしまいました。)

    こちら↓が問題のエラーメッセージです。

    ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

    値「2020/6/23 20:2:00」をタイプ「文字列」からタイプ「タイムスタンプ」に変換できませんでした。

    ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー


    よろしくお願いいたします。

  • Matz
    Matz Admin
    編集済: 4月 2022

    @ユーザー11852

    「TIMESTAMP_TRUNC」を使う方法はいかがでしょうか?

    「スクリプトを追加」にて以下のように記載いただくと、秒を切り捨てて表示することができます。

    TIMESTAMP_TRUNC(`現在`,'MINUTE')


  • @Matz

    「TIMESTAMP_TRUNC」で解決しました。

    こんな簡単に使える関数があるのですね。

    ありがとうございました。