временная метка в спящем режиме с помощью оракула - PullRequest
0 голосов
/ 22 августа 2011

У меня есть класс сущностей, у которого есть свойство timestamp.

Если я сохраню экземпляр сущности в oracle, соответствующий столбец отметки времени будет записан в китайском формате (я использую oracle 10g с китайской локалью).

22-8月 -11 07.04.03.926000 下午 сохранено

Но я хочу 2011-08-22 19:04:03.926

Как изменить определение столбца или настройку языкового стандарта базы данных?

1 Ответ

0 голосов
/ 22 августа 2011

Отметка времени в Oracle - это момент времени. Таким образом, нет никакого формата, сохраненного с данными. Когда вы извлекаете данные из столбца метки времени, они по умолчанию отображаются в формате, заданном вашей NLS_TIMESTAMP_FORMAT или NLS_TIMESTAMP_TZ_FORMAT переменной сеанса.

Вы всегда можете использовать определенный формат с to_char:

SQL> SELECT to_char(systimestamp, 'yyyy-mm-dd hh24:mi:ss.ff3') my_ts FROM dual;

MY_TS
-----------------------------
2011-08-22 14:38:48.351

Вы также можете установить новое значение по умолчанию для вашей сессии с помощью:

SQL> ALTER SESSION SET NLS_TIMESTAMP_TZ_FORMAT='yyyy-mm-dd hh24:mi:ss.ff3';

Session altered

SQL> select systimestamp from dual;

SYSTIMESTAMP
-------------------------------------------------
2011-08-22 14:42:23.776
...