我有两个独立的数据库。
当我在第一个db上运行查询时:
select
TO_DATE( sysdate , 'YY-MM-DD')- 1 / 86400 data1,
trunc(sysdate, 'dd') data2,
to_char( sysdate, 'YYYY-MM-DD') date3
from dual
它会返回此结果:
[data1] => 14/07/02
[data2] => 14/07/02
[date3] => 2014-07-02
当我在第二个db上运行相同的查询时:
select
TO_DATE( sysdate , 'YY-MM-DD')- 1 / 86400 data1,
trunc(sysdate, 'dd') data2,
to_char( sysdate, 'YYYY-MM-DD') date3
from dual
返回如下结果
[data1] => 14-JUL-02
[data2] => 02-JUL-14
[date3] => 2014-07-02
如何使用OCI更改DB2的响应以返回类似DB1的日期格式?
连接字符串到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;
}
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/>");
}
答案 0 :(得分:0)
参见How can I alter NLS_DATE_FORMAT in PHP 所以答案就像是
ALTER SESSION SET NLS_DATE_FORMAT ='YY-MM-DD';
答案 1 :(得分:0)
你应该做一个
alter session set nls_date_format='yy-mm-dd';
此外,代码
TO_DATE( sysdate , 'YY-MM-DD')- 1 / 86400 data1,
应该是
to_char(sysdate - 1/86400, 'YY-MM-DD') data1,
或者,如果您设置NLS,只需
sysdate - 1/86400 data1,