Автоматически форматировать даты sql - PullRequest
2 голосов
/ 04 августа 2010

Я пытаюсь автоматически изменить формат вывода дат в моих SQL-запросах без необходимости его указания (PHP / Oracle).

Я использую to_char(pi.date_of_birth , 'YYYY/MM/DD') as date_of_birth для изменения форматированияиз моих запросов.Я хотел бы иметь возможность применить это к любой дате, возвращаемой оператором '*'.

Моя проблема в том, что я не могу написать все свои запросы вручную, большинство из нихгенерируется динамически, и было бы гораздо проще каким-либо образом изменить формат глобально.

Теперь у меня также проблема в том, что у меня нулевой контроль над базой данных.Поэтому я не могу ничего менять и добавлять какие-либо процедуры.Есть ли какой-то синтаксис, который я могу добавить к своим запросам, или простой способ интеграции его в php?Спасибо.

Ответы [ 2 ]

2 голосов
/ 04 августа 2010

если вам действительно нужно изменить формат, измените сценарий подключения, чтобы добавить сеанс изменения, который изменит NLS_DATE_FORMAT

$db = new PDO("oci:dbname=" . $dbSource, $dbUser, $dbPass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "ALTER SESSION SET NLS_DATE_FORMAT='YYYY/MM/DD'";
$db->exec($sql);
2 голосов
/ 04 августа 2010

Зачем вам вообще нужно форматировать вывод в слое базы данных?Почему бы не извлечь его как тип PHP, используемый для дат и времени, и отформатировать его там?Аналогично для входных значений следует использовать параметризованные запросы и указывать значения в виде даты / времени, а не помещать их в SQL в определенном формате.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...