Столбец даты базы данных Oracle не показывает полную дату в переполнении стека

У меня есть столбец даты и значение даты устанавливается в формате: DD-MON-RR HH24: MI: SS
и когда я выполняю сценарий sql из sqldeveloper, я вижу дату как
16 марта 15 20:40:47. Но когда я хочу получить это значение с php:

$currentDATE=$row['DATE'];
echo gettype($row['DATE']);
echo $currentDATE;

Я вижу результат как
string16-МАР-15
Как я могу увидеть полную информацию о дате на странице php?

1

Решение

Это будет связано с настройками nls_date_format на вашем клиенте Oracle. Это также действительно хорошая демонстрация того, почему ваши сценарии SQL не должны полагаться на неявные преобразования.

У вас есть два варианта:

  1. (рекомендуется) Обновите сценарий SQL, чтобы оператор SQL выводил to_char(<date column>, '<your date format>')
  2. измените настройки по умолчанию nls_date_format, запустив alter session set nls_date_format= '<your date format>'; только после подключения к SQL * Plus.

Первый вариант, безусловно, лучший вариант; это означает, что любой, кто должен запустить этот скрипт, увидит те же результаты, не прибегая к помощи параметра nls_date_format.

3

Другие решения

У меня есть столбец даты и значение даты устанавливается в формате: DD-MON-RR HH24: MI: SS

Убедитесь, что при отображении DATE вы явно конвертируете ДАТА в строка с помощью TO_CHAR вместе с желаемым маска формата.

Формат даты, который вы видите, зависит от вашего специфичные для локали настройки NLS.

Помните,

  1. Для расчета даты конвертируйте строку в дату, используя НА СВИДАНИЕ. Если это тип даты, то оставьте как есть.
  2. Для отображения DATE значение в нужном формате, преобразовать его в строку, используя TO_CHAR и собственно маска формата.
1

По вопросам рекламы [email protected]