Сегодня в СУБД Oracle есть несколько типов данных для хранения дат и времени. Самый старый из них - тип date
- совершенно точно был еще в Oracle 7 (с более ранними версиями СУБД я не работал). Некоторые интересные вещи про тип date
я уже рассказывал. В версии Oracle 9 появились новые типы для дат и времени timestamp
, timestamp with local time zone
и timestamp with time zone
, а также интервальные типы interval year to month
и interval day to second
, работающие вместе с новыми типами и типом date
.
Типы timestamp
, timestamp with local time zone
и timestamp with time zone
привнесли два новшества, по сравнению с типом date
:
- возможность работать со временем с точностью до наносекунд,
- возможность работать с часовыми поясами (time zones).
Ниже мы поработаем с типами timestamp
и interval
, обращая внимание на задание значений этих типов с помощью литералов и на их арифметику. Затем обратимся к различиям между типами timestamp
, timestamp with local time zone
и timestamp with time zone
, и рассмотрим, какой из них предпочтительно использовать в какой ситуации.