gpt4 book ai didi

sql - 如何设置 NLS_DATE_FORMAT | ZF2 与 oci8 |甲骨文 12

转载 作者:行者123 更新时间:2023-12-02 03:20:39 25 4
gpt4 key购买 nike

我正在使用 ZendFramework2,我的数据库是 Oracle 12。

我想为所有日期字段设置日期格式。

现在,当我选择一个日期字段时,结果是 dd/mm/aa,我想要 dd/mm/yyyy hh24:mi:ss。

(我使用 TableGateway 对象的方式与 Zf2 的骨架应用程序相同)

我可以在我的配置文件中这样做吗?

(执行此操作的 sql 代码应该是“alter session set nls_date_format = 'DD/MM/YYYY HH24:MI:SS';”)

感谢您的帮助。

<code>
------
config\autoload\db.config.global.php
------
<?php
return array(
'db' => array(
'driver' => 'OCI8',
'connection_string' => " (DESCRIPTION =
(SDU = 8888)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = tcp)(HOST = 127.0.0.1)(PORT = 9999))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = MYDB)
)
)",
'character_set' => 'AL32UTF8',
),
'service_manager' => array(
'factories' => array(
'Zend\Db\Adapter\Adapter'
=> 'Zend\Db\Adapter\AdapterServiceFactory'
)
)
);
</code>

最佳答案

我有一个类似的问题,但我使用的是 Doctrine 2 而不是 Zend\Db。我当然在使用 Oracle。 Doctrine 2 解决了连接后改变 session 的问题:

class OracleSessionInit 
{

protected $_defaultSessionVars = array(
'NLS_TIME_FORMAT' => "HH24:MI:SS",
'NLS_DATE_FORMAT' => "YYYY-MM-DD HH24:MI:SS",
'NLS_TIMESTAMP_FORMAT' => "YYYY-MM-DD HH24:MI:SS",
'NLS_TIMESTAMP_TZ_FORMAT' => "YYYY-MM-DD HH24:MI:SS TZH:TZM",
'NLS_NUMERIC_CHARACTERS' => ".,",
);

/**
* @param \Doctrine\DBAL\Event\ConnectionEventArgs $args
*
* @return void
*/
public function postConnect(ConnectionEventArgs $args)
{
if (count($this->_defaultSessionVars)) {
array_change_key_case($this->_defaultSessionVars, \CASE_UPPER);
$vars = array();
foreach ($this->_defaultSessionVars as $option => $value) {
$vars[] = $option." = '".$value."'";
}
$sql = "ALTER SESSION SET ".implode(" ", $vars);
$args->getConnection()->executeUpdate($sql);
}
}
}

整个文件 OracleSessionInit .

你可以考虑 Doctrine 2 来解决这个问题。但如果你不能或不想,也许你可以看看这个 Zend Whitepaper PHP and Oracle第 3-4 页,“连接数据库”部分。这是一个 ZF1 解决方案,我没有尝试。但是很容易理解这个想法并适应ZF2。

关于sql - 如何设置 NLS_DATE_FORMAT | ZF2 与 oci8 |甲骨文 12,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33694607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com