Oracle. Как вывести дату и время?
33989 просмотра
4 ответа
Моя таблица посещений выглядит следующим образом:
insert into Visit
values(12, to_date('19-JUN-13', 'dd-mon-yy'), to_date('19-JUN-13 12:00 A.M.' , 'dd-mon-yy hh:mi A.M.'));
insert into Visit
values(15, to_date('20-JUN-13', 'dd-mon-yy'), to_date('20-JUN-13 02:00 A.M.' , 'dd-mon-yy hh:mi A.M.'));
insert into Visit
values(18, to_date('21-JUN-13', 'dd-mon-yy'), to_date('21-JUN-13 10:30 A.M.' , 'dd-mon-yy hh:mi A.M.'));
Когда я пытаюсь запросить его:
select * from Visit
я получаю:
SQL> select * from visit;
SLOTNUM DATEVISIT ACTUALARRIVALTIME
---------- --------- ------------------------------
12 19-JUN-13 19-JUN-13
15 20-JUN-13 20-JUN-13
18 21-JUN-13 21-JUN-13
SQL> spool off;
Почему время не там?
Автор: Buras Источник Размещён: 13.11.2019 11:46Ответы (4)
12 плюса
Вы также можете установить формат, который применяется ко всем датам, например так:
ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-YYYY HH:MI:SS PM';
Таким образом, ваш исходный запрос будет выводить даты в нужном вам формате, без использования TO_CHAR
. Чтобы вернуться к обычному формату по умолчанию, просто сделайте это:
ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-RR';
Автор: Ed Gibbs
Размещён: 20.06.2013 08:39
11 плюса
это формат даты оракула, который установлен по умолчанию для вашего экземпляра.
Вы должны правильно указать формат, чтобы увидеть более или менее .. что-то вроде этого:
select to_char( datevisit, 'dd-mon-yy hh24:mi:ss' ) from visit
Автор: Randy
Размещён: 20.06.2013 08:32
2 плюса
Вы полагаетесь на неявное преобразование даты, которое использует вашу (зависящую от сеанса, но, возможно, унаследованную от настройки по умолчанию БД) NLS_DATE_FORMAT
- в этом случае, кажется, что DD-MON-RR
.
Вы можете использовать to_char
для указания формата, например:
select to_char(actualarrivaltime, 'DD-MON-YYYY HH:M:SS PM') from ..
Модели формата datetime описаны в документации .
В общем, лучше никогда не полагаться на неконтролируемые преобразования. Даже если вы получите то, что ожидаете сейчас, они могут зависеть от сеанса, поэтому другой пользователь в другом клиенте, возможно, увидит что-то другое. Это может привести к сбоям, а также просто выглядеть неправильно. Всегда указывайте формат даты и номера, используя to_date
, to_char
и to_timestamp
т. Д.
2 плюса
Oracle внутренне следует формату «DD-Mon-YY» для хранения в базе данных. Так что возвращается 'DD-Mon-Y
Если вы хотите, чтобы формат даты с часами мин и сек. Вы можете изменить NLS_DATE_FORMAT в сеансе.
Если вы хотите запросить только презентацию цели для этого экземпляра. Используйте функцию TO_char для преобразования в нужный формат.
SELECT slotnum, TO_CHAR (datevisit, 'DD-MON-YY ') "DATEVISIT",
TO_CHAR (actualarrivaltime, 'DD-MON-YY HH:MI:SS AM') "ACTUALARRIVALTIME"
FROM visit
Надеюсь, что приведенный выше запрос даст вам вывод, как вам нравится.
Автор: Bhargav B Размещён: 21.06.2013 11:06Вопросы из категории :
- oracle Как выбрать n-ую строку в таблице базы данных SQL?
- oracle Лучший способ инкапсулировать сложную логику курсора Oracle PL / SQL в виде представления?
- oracle Лучший способ сделать многострочную вставку в Oracle?
- oracle В какую таблицу / представление вы запрашиваете выбор всех имен таблиц в схеме в Oracle?
- oracle Как решить ORA-011033: инициализация или завершение работы ORACLE
- oracle Как импортировать дамп оракула в другое табличное пространство
- date Как получить разницу между двумя датами в JavaScript?
- date Получить последний день месяца в Python
- date DateTime.Now против DateTime.UtcNow
- date Получить последнюю пятницу месяца в Java
- date Why does Javascript getYear() return 108?
- date Как вернуть только дату из типа данных SQL Server DateTime
- time Какой выбор вы выбрали для решения по управлению временем?
- time Каков стандартный способ добавить N секунд для datetime.time в Python?
- time Каков наилучший способ для анализа времени в объект Date из пользовательского ввода в Javascript?
- time Время экспорта / публикации Flash
- time How to convert milliseconds into human readable form?
- time iPhone: Как узнать текущие миллисекунды?