sql >> データベース >  >> RDS >> Oracle

特定の形式でOracleにタイムスタンプを挿入する方法

    特定の形式でタイムスタンプを挿入することはありません。タイムスタンプ(および日付)は、内部表現を使用してデータベースに格納されます。内部表現は、タイプと精度に応じて7バイトから11バイトの間です。 この質問には詳細があります 、とりわけ。

    クライアントまたはアプリケーションは、人間が読める文字列形式で値を表示する方法を決定します。

    行う場合:

    to_timestamp(localtimestamp,'YYYY/MM/DD')
    

    localtimestampを暗黙的に変換しています セッションのNLS設定を使用して文字列に変換し、タイムスタンプに変換し直します。これにより、偶然に値が変更されて精度が低下する可能性がありますが、値が内部に保存される方法は変更されません。あなたの場合、NLS設定と提供しているフォーマットの不一致により、ORA-01830エラーが発生します。

    したがって、最初の挿入は正しいです(サーバー時間ではなく、セッション時間を本当に必要としていると仮定します)。 見たい場合 保存された値を特定の形式で変更すると、クライアントセッションのNLS設定が変更されるか、クエリ時に明示的にフォーマットされます(例:

    )。
    select to_char(time, 'YYYY-MM-DD HH24:MI:SS.FF3') from activity_log
    


    1. mysqlまたはrailsでこれをどのように行いますか

    2. MySQLIN条件制限

    3. mysqlダンプ-一部のテーブルデータを除外します

    4. スーパーバイザー階層のリストを取得するためのSQLクエリ。従業員->スーパーバイザー->スーパーバイザー