Проблема при вставке данных в базу данных из PHP


моя проблема заключается в том, что при вставке данных в базу данных из PHP поле date регистрирует его для меня как 0027-02-19, а когда я вставляю его непосредственно из базы данных, он регистрирует его для меня как должно быть, т. е. 2019-02-27. Что может произойти?

SQL insert непосредственно из базы данных:

INSERT INTO MRCJ000 (NBCLI000,G300CTA,C001CLIN,CUUID000,UIDEJE000,FULTACT000,USFHPRO,IDALDF000) 
VALUES('victor', 123456, '124', '22', '10', TO_DATE(sysdate, 'YYYY/MM/DD'), TO_DATE(sysdate, 'YYYY/MM/DD'), '0')

Insert из PHP:

$stid = $conn->prepare("INSERT INTO MRCJ000 (NBCLI000,G300CTA,C001CLIN,CUUID000,UIDEJE000,FULTACT000,USFHPRO,IDALDF000) 
                                                VALUES(?, ?, ?, ?, ?, TO_DATE(SYSDATE, 'YYYY/MM/DD'), TO_DATE(SYSDATE, 'YYYY/MM/DD'), ?)");
                        $stid->bindParam(1, $clientes_enviar[$i], PDO::PARAM_STR, 50);
                        $stid->bindParam(2, $cuentas_enviar[$i], PDO::PARAM_INT);
                        $stid->bindParam(3, $codCliente[$i], PDO::PARAM_STR, 50);                   
                        $stid->bindParam(4, $canal, PDO::PARAM_STR, 20);                    
                        $stid->bindParam(5, $gerente, PDO::PARAM_STR, 20);                    
                        $stid->bindParam(6, $aliado, PDO::PARAM_STR, 20);                
                        $stid->execute();
                        $stid->closeCursor();

я оставляю изображение базы данных:

Datos al insertar

Author: Víctor Álvarez, 2019-02-27

2 answers

Вам не нужно делать to_date на дату. Это преобразование даты в дату; учитывая, что эта функция чувствительна к настройкам языка и территории. При необходимости вы должны использовать третий параметр функции.

 2
Author: Sal, 2019-02-27 13:53:28

Вы Можете использовать CURDATE() вместо TO_DATE(SYSDATE, 'YYYY/MM/DD') CURDATE() возвращает дату в формате 'YYYY-MM-DD'.

 0
Author: AS13L, 2019-02-27 14:08:51