Oracle数据库和Codeigniter中的日期插入问题

时间:2014-04-22 08:03:33

标签: php oracle codeigniter

我在使用日期列更新oracle db表时遇到问题。我尝试了很多解决方案,但仍然没有工作。 我无法使用codeigniter活动记录或普通查询将日期插入数据库 ..列类型为Timestamp。这是我尝试过的一些解决方案。你可以帮忙吗...谢谢你

 $this->db->set('AC_START',"TO_DATE('2014-03-4 2:30','yyyy-mm-dd hh:mm')");
 $this->db->set('AC_END',"TO_DATE('2014-05-5 2:34' ,'yyyy-mm-dd hh:mm')");
 $this->db->insert('ACTIVITES');

这是我总是得到的错误消息

错误号码:

INSERT INTO "LI_PPPA"."ACTIVITES" ("AC_START", "AC_END") VALUES ('TO_DATE('2014-03-4 2:30','yyyy-mm-dd hh:mm')', 'TO_DATE('2014-05-5 2:34' ,'yyyy-mm-dd hh:mm')')

文件名:目录\ program \ system \ database \ DB_driver.php 行号:330

3 个答案:

答案 0 :(得分:0)

你必须确保CI不会逃避传递给oracle数据库的值,因为to_date是一个oracle函数。

尝试以下方法:

 $this->db->set('AC_START',"TO_DATE('2014-03-4 2:30','yyyy-mm-dd hh:mm')",FALSE);
 $this->db->set('AC_END',"TO_DATE('2014-05-5 2:34' ,'yyyy-mm-dd hh:mm')",FALSE);
 $this->db->insert('ACTIVITES');code here

使用最后一个参数,您告诉CodeIgniter不要转义此值。

答案 1 :(得分:0)

Sonaryr的回答为我提出了一个Oracle错误:ORA-01810

Oracle SQL Developer声明输出:

Error report:
SQL Error: ORA-01810: format code appears twice
01810. 00000 -  "format code appears twice"
*Cause:    
*Action:

修改MM改为MI:

$this->db->set('AC_START',"TO_DATE('2015-09-02 16:35' ,'YYYY-MM-DD HH24:MI')",FALSE);

答案 2 :(得分:-1)

编写普通查询以对TO_DATE()执行操作; Codegniter oracle的to_date()没有任何库函数。