-1

誰かが言及されたコードのバグを見つけることができますか?

INSERT INTO FMS_LOG (FL_ID,FL_USER_ID, FL_OFFICE_ID, FL_DATETIME,
                     FL_IP,FL_FISCAL_YEAR,FL_USER_NAME,FL_USER_ADDRESS) 
VALUES 
( 105, 18, 18, 
  TO_DATE('03/Jan/2013 15:51:33PM','DD/MON/YY HH:MI:SSAM'), 
 '127.0.0.1',
 '2069/70', 
 'dordhankuta', 
 'balaju' );

FL_DATETIMEのフィールドタイプはDATEです。

これはエラーをスローしています:

ORA-01861: literal does not match format string

サーバー側のコード:

    $this->db->query("
    INSERT INTO FMS_LOG (FL_ID,FL_USER_ID, FL_OFFICE_ID, FL_DATETIME, FL_IP,FL_FISCAL_YEAR,FL_USER_NAME,FL_USER_ADDRESS) 
    VALUES 
        (
        $next_id,
        $userinfo[user_id], 
        $userinfo[user_office_id],
        TO_DATE('".date('d/M/Y H:i:sA', time()+20700)."','DD/MON/YY HH:MI:SSAM'),
        '$client_ip',
        '$fiscal_year',
        '$userinfo[user_full_name]',
        '$address'
        )        
    ");
4

1 に答える 1

2

まず、15PMは存在しません。第二に、年のマスクはyyyy、ではなく、yy

これは機能します:

select  TO_DATE('03/Jan/2013 15:51:33','DD/MON/YYYY HH24:MI:SS') from dual;

AM / PMを使用する場合は、時刻が1〜12であることを確認してください。これにより、次のように機能します。

select  TO_DATE('03/Jan/2013 5:51:33PM','DD/MON/YYYY HH:MI:SSAM') from dual;
于 2013-01-03T10:15:52.270 に答える