2

I have two separate databases.

When I run a query on 1st db:

select
      TO_DATE( sysdate , 'YY-MM-DD')- 1 / 86400 data1,
      trunc(sysdate, 'dd') data2,
      to_char( sysdate, 'YYYY-MM-DD') date3
from dual

it returns this result:

    [data1] => 14/07/02
    [data2] => 14/07/02
    [date3] => 2014-07-02

When I run this same query on 2nd db:

select
      TO_DATE( sysdate , 'YY-MM-DD')- 1 / 86400 data1,
      trunc(sysdate, 'dd') data2,
      to_char( sysdate, 'YYYY-MM-DD') date3
from dual

returns me results like below

    [data1] => 14-JUL-02
    [data2] => 02-JUL-14
    [date3] => 2014-07-02

How I can change response from DB2 with OCI to return date format like DB1?

Connection string to DB1

try
{
    $pdo = new PDO('oci:dbname='.User::db1()->hostfullspec, User::db1()->login, User::db1()->passwd);
    $pdo ->setAttribute(PDO::ATTR_CASE,PDO::CASE_LOWER);
    $pdo ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
} catch (PDOException $e) {
     die("ORA RAP: PDO CONNECTION ERROR: " . $e->getMessage() ).PHP_EOL;
}

Connection string to DB2

try
{
    $pdo = new PDO('oci:dbname='.User::db2()->hostfullspec, User::db2()->login, User::db2()->passwd);
    $pdo ->setAttribute(PDO::ATTR_CASE,PDO::CASE_LOWER);
    $pdo ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
} catch (PDOException $e) {
     die("ORA RAP: PDO CONNECTION ERROR: " . $e->getMessage() . "<br/>");
}
marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
breq
  • 24,412
  • 26
  • 65
  • 106

2 Answers2

1

You should do an

alter session set nls_date_format='yy-mm-dd';

Also, the code

TO_DATE( sysdate , 'YY-MM-DD')- 1 / 86400 data1,

should be

to_char(sysdate - 1/86400, 'YY-MM-DD') data1,

or, if you set the NLS, just

sysdate - 1/86400 data1,
Florin Ghita
  • 17,525
  • 6
  • 57
  • 76
0

See How can I alter NLS_DATE_FORMAT in PHP so the answer is something like

ALTER SESSION SET NLS_DATE_FORMAT = 'YY-MM-DD';

Community
  • 1
  • 1
torbatamas
  • 1,236
  • 1
  • 11
  • 21