Как я могу зарегистрировать часы в Oracle SQL Developer 20.2 для базы данных 11g?

#sql #oracle #datetime #sqldatatypes

#sql #Oracle #дата и время #типы sqldatatypes

Вопрос:

Я пытаюсь зарегистрировать поле ДАТЫ и часа в таблице. ДАТА есть, но я не могу найти тип ВРЕМЕНИ для поля «Час». Есть ли другой способ сделать эту штуку? Или я что-то упускаю? Я пытаюсь зарегистрировать время в формате «11:30».

Комментарии:

1. Что вы подразумеваете под «регистрацией» чего-либо на столе? Вы имеете в виду INSERT ? Вы имеете в виду хранилище (то есть вы создаете таблицу прямо сейчас и должны определить столбцы и их типы данных)?

Ответ №1:

Столбец Oracle date всегда содержит день и время. Обычно нет причин иметь отдельный столбец для хранения времени.

 create table foo (
  my_date_col date
);

insert into foo( my_date_col ) 
  values( to_date( '2020-11-23 11:30', 'yyyy-mm-dd hh24:mi' ) );

select trunc( my_date_col ) date_data_type_at_midnight,
       to_char( my_date_col, 'yyyy-mm-dd' ) string_representation_of_day,
       to_char( my_date_col, 'hh24:mi:ss' ) string_representation_of_time
  from foo;
 

Ответ №2:

В Oracle нет time типа данных. Существует date тип данных, в котором хранятся дата и время.

Вы не объяснили свой фактический вариант использования, но: в большинстве случаев вам не нужно и не нужно хранить дату и время в двух отдельных столбцах. Вы можете использовать date , который хранит оба. Затем вы можете использовать функции даты для доступа к частям даты и времени отдельно, если вам действительно нужно (или использовать вычисляемые столбцы).

Комментарии:

1. я понимаю. Большое спасибо!