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

Oracleでうるう秒を処理する方法

    MOSから-

    うるう秒をタイムスタンプ列に挿入すると、ORA-01852(DocID 1553906.1)で失敗します

    適用対象:

    OracleDatabase-EnterpriseEdition-バージョン8.1.7.4以降

    OracleDatabase-StandardEdition-バージョン8.1.7.4以降

    このドキュメントの情報は、すべてのプラットフォームに適用されます。

    症状:

    うるう秒をタイムスタンプ列に挿入しようとすると、次のように失敗します:ORA-01852:秒は0から59の間でなければなりません

    原因

    日付またはtimestampdatatypeに59秒を超える値を格納することはできません

    解決策

    この問題を回避するには、うるう秒のレコードを代わりにavarchar2データ型に格納できます(例:

    )。

    SQL> create table test (val number, t varchar2(30));

    Table created.

    SQL> insert into test values(123, '2012-06-30T23:59:60.000000Z');

    1 row created.

    最善の解決策ではありませんが、唯一の解決策です。




    1. SELECTINTOでのORDERBYの保持

    2. MySQLテーブルからの一意性制約の削除

    3. SQL ServerでのPI()の例

    4. MySQLWorkbenchでデータベース図を作成する