#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. я понимаю. Большое спасибо!