我在使用日期列更新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
答案 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()没有任何库函数。