【问题标题】:How to properly insert a datetime in Oracle database? [duplicate]如何在 Oracle 数据库中正确插入日期时间? [复制]
【发布时间】:2019-09-23 06:40:45
【问题描述】:

我在我的 Oracle 数据库中插入日期,问题是我无法插入日期。

这是我的代码:

$clientquery = "INSERT INTO TBLCLIENT(CLIENTSID, NAME, BORWTYP, CLIENTTP, CLIENTUPDATE) VALUES('". $cid ."', '". $fullname ."', 'IND', 'I', '". $client_update ."')";
$clientsql = oci_parse($conn, $clientquery);
$clientexec = oci_execute($clientsql);

这是示例查询:

INSERT INTO LCCLIENT(CLIENTID, NAME, BORWTP, CLIENTTP, CLIENTUPDATE) 值('2000050431', 'hshs, js hdh', 'IND', 'I', '23-Sep-2019 02:11:48' )

我在尝试插入数据时收到此错误:

ORA-01830: 日期格式图片在转换整个输入字符串之前结束

【问题讨论】:

    标签: php oracle


    【解决方案1】:

    您需要在to_date函数中提供一个日期来将字符串转换为oracle可识别的日期,如下所示:

    INSERT INTO LCCLIENT(CLIENTID, NAME, BORWTP, CLIENTTP, CLIENTUPDATE) 
    VALUES('2000050431', 'hshs, js hdh', 'IND', 'I', 
          to_date('23-Sep-2019 02:11:48','dd-mon-yyyy hh:mi:ss')); <-- this
    

    干杯!!

    【讨论】:

    • 谢谢它有效,但你能告诉我为什么有效吗? Oracle 在插入日期时与 mysql 或 mssql 有很大不同
    • 是的,在 oracle 中您需要使用 to_date 函数指定日期的格式,否则它会将 NLS_DATE_FORMAT 视为默认格式并仅接受该格式的日期。
    猜你喜欢
    • 1970-01-01
    • 2018-08-23
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-07
    • 2018-05-18
    相关资源
    最近更新 更多