Php 如何使用trunc更改Oracle DB中的默认日期格式?
我有两个独立的数据库 当我在第一个数据库上运行查询时:Php 如何使用trunc更改Oracle DB中的默认日期格式?,php,oracle,pdo,oracle11g,Php,Oracle,Pdo,Oracle11g,我有两个独立的数据库 当我在第一个数据库上运行查询时: 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 [dat
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
当我在第二个数据库上运行相同的查询时:
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/>");
}
试试看
{
$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);
}捕获(PDO$e){
die(“ORA RAP:PDO连接错误:“..e->getMessage()”
);
}
请参见
所以答案是
ALTER SESSION SET NLS_DATE_格式='YY-MM-DD' 你应该做一个
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,