Forum Stats

  • 3,840,394 Users
  • 2,262,599 Discussions
  • 7,901,262 Comments

Discussions

TO_TIMESTAMPを動的に設定する

User325202
User325202 Member Posts: 2 Blue Ribbon
edited Dec 11, 2018 9:35PM in SQLとPL/SQL

有識者の皆さん、お世話になります。

DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMPのLAST_ARCHIVE_TIMEを動的に

設定したいと考えております。

単純に考えた場合、

TO_TIMESTAMP(TO_CHAR(TO_CHAR(SYSDATE,'yyyy/mm/dd') || ' 05:00:00.0'),'yyyy/mm/dd hi24:mi:ss.ff')

のように設定するのかと考えたのですが、「ORA-01821: 日付書式コードが無効です」となります。

この場合に、どのようにすれば動的なTIMESTAMP型を取得できるのでしょうか?

お分かりになりましたら、ご教示願います。

Kazuhiro

Best Answer

  • User325202
    User325202 Member Posts: 2 Blue Ribbon
    edited Dec 11, 2018 9:35PM Answer ✓

    Kazuhiroさん、ご回答ありがとうございます。

    > 'yyyy/mm/dd hi24:mi:ss.ff' → 'yyyy/mm/dd hh24:mi:ss.ff'

    こちらは、修正しております。

    > to_timestamp(trunc(sysdate))+ INTERVAL '5' hour

    こちらは、TO_TIMESTAMP(TRUNC(SYSDATE)) + 5/24

    といたしました。

    これで、TIMESTAMPについては解決いたしました。

    お忙しいところ、ありがとうございました。

    Kazuhiro

Answers

  • Kazuhiro
    Kazuhiro Member Posts: 24 Blue Ribbon
    edited Dec 10, 2018 11:22AM

    こんにちは。

    もう解決済みかもしれませんが、TO_TIMESTAMPに渡す書式は

     'yyyy/mm/dd hi24:mi:ss.ff' → 'yyyy/mm/dd hh24:mi:ss.ff'

    ではないでしょうか。

    同様にsysdateの時刻を5:00に変更するのでしたら、以下の方法もありますね。

     to_timestamp(trunc(sysdate))+ INTERVAL '5' hour

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

  • User325202
    User325202 Member Posts: 2 Blue Ribbon
    edited Dec 11, 2018 9:35PM Answer ✓

    Kazuhiroさん、ご回答ありがとうございます。

    > 'yyyy/mm/dd hi24:mi:ss.ff' → 'yyyy/mm/dd hh24:mi:ss.ff'

    こちらは、修正しております。

    > to_timestamp(trunc(sysdate))+ INTERVAL '5' hour

    こちらは、TO_TIMESTAMP(TRUNC(SYSDATE)) + 5/24

    といたしました。

    これで、TIMESTAMPについては解決いたしました。

    お忙しいところ、ありがとうございました。

    Kazuhiro