如何在 Oracle 数据库中正确插入日期时间? [复制]

Posted

技术标签:

【中文标题】如何在 Oracle 数据库中正确插入日期时间? [复制]【英文标题】:How to properly insert a datetime in Oracle database? [duplicate] 【发布时间】: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: 日期格式图片在转换整个输入字符串之前结束

【问题讨论】:

【参考方案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 视为默认格式并仅接受该格式的日期。

以上是关于如何在 Oracle 数据库中正确插入日期时间? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Oracle 中插入带小数秒的日期和时间?

如何在 oracle 数据库表中插入 csv 或 .txt 文件的日期列?

尝试使用 jdbc、SimpleDateFormat 插入数据库时​​,日期中的年份不正确

oracle中如何在日期字段中插入文本

在Oracle使用sql语句中如何插入日期格式的数据

如何在oracle表中插入系统时间