Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Блок 2.doc
Скачиваний:
2
Добавлен:
15.08.2019
Размер:
119.81 Кб
Скачать

Арифметические действия с датами

Вы можете прибавлять и вычитать числовые константы и даты из даты. Oracle интепретирует числа в арифметических выражения с датой как количество дней. Например, SYSDATE + 1 дает завтрашнюю дату, а SYSDATE - 7 – дату неделю раньше. Выражение SYSDATE + (10/1440) дает дату и время спустя 10 минут от текущей датф и времени. Вычитание из столбца HIREDATE таблицы TEACHER значения функции SYSDATE дает количество дней, прошедших с момента поступления преподавателя на работу. Значения типа DATE нельзя умножать и делить.

Oracle предоставляет ряд функций для оперирования с датами, например, функция ADD_MONTHS позволяет добавлять итли вычитать месяцы из даты. Так как дата содержит также и время, результаты вычисления операций над датами дают дробные значения. Дробь означает часть дня, например, 1.5 дней – это 36 часов.

  1. Язык SQL Oracle. Назначения функции TO_DATE. Пример

Для ввода даты, которая отличается от текущего формата по умолчанию воспользуйтесь функцией TO_DATE с соответствующей маской формата, например:

TO_DATE ('November 13, 1992', 'MONTH DD, YYYY')

Если используется формат DD-MON-YY, то YY указывает на год в 20-м столетии (например, 31-DEC-92 является датой December 31, 1992). Если необходимо представить год с указанием столетия, то используйте соответствующую маску формата, например, как это показано на примере выше.

Время запоминается в формате 24 часов: #HH:MM:SS. По умолчанию время в поле даты равно 12:00:00 A.M. если временная компонента даты не была указана. Если вводится только время, то дата по умолчанию предполагается равной первому дню текущего месяца. Для ввода только времени используйте функцию TO_DATE с маской формата, указывающей на присутствии только времени, например::

INSERT INTO EventTime (name, EvTime) VALUES

('START',TO_DATE('10:56',' HH:MI'));

Стандарт SQL предполагает еще одну форму задания литерала типа даты (то есть собственно даты без времени), который также поддерживается в Oracle. Этот формат следующий:

DATE 'YYYY-MM-DD'

Где:

DATE – ключевое слово

YYYY-MM-DD – дата в формате:

YYYY – четыре цифры года

ММ – две цифры месяца

DD – две цифры дня

- – символ «минус»

Примеры: DATE '1968-01-17', DATE '2005-07-23'

  1. Язык SQL Oracle. Арифметические операции с датами

Вы можете прибавлять и вычитать числовые константы и даты из даты. Oracle интепретирует числа в арифметических выражения с датой как количество дней. Например, SYSDATE + 1 дает завтрашнюю дату, а SYSDATE - 7 – дату неделю раньше. Выражение SYSDATE + (10/1440) дает дату и время спустя 10 минут от текущей датф и времени. Вычитание из столбца HIREDATE таблицы TEACHER значения функции SYSDATE дает количество дней, прошедших с момента поступления преподавателя на работу. Значения типа DATE нельзя умножать и делить.

Oracle предоставляет ряд функций для оперирования с датами, например, функция ADD_MONTHS позволяет добавлять итли вычитать месяцы из даты. Так как дата содержит также и время, результаты вычисления операций над датами дают дробные значения. Дробь означает часть дня, например, 1.5 дней – это 36 часов.

Арифметика даты и времени

Данные типа DATE могут быть операндами операций увеличения, уменьшения и вычитания.

В операциях увеличения и уменьшения тип первого операнда - DATE, тип второго операнда - NUMBER. Тип результата совпадает с типом первого операнда.

В операции вычитания оба операнда должны иметь тип DATE, результат имеет тип NUMBER.

Число типа NUMBER в арифметике даты и времени интерпретируется как количество дней. Дробная часть числа - дробные части дня, т.е., часы, минуты, секунды. Некоторые функции Oracle обеспечивают дополнительную поддержку арифметики даты и времени:

ADD_MONTHS(d,n) - возвращает дату d плюс n месяцев (n может быть только целым)

MONTHS_BETWEEN(d1,d2) - возвращает, количество месяцев между датами d1 и d2 (возможно, с дробной частью)

LAST_DAY(d) - возвращает дату последнего дня того же месяца, к которому относится дата d

NEXT_DAY(d,c) - возвращает дату, соответствующую следующему появлению дня недели, заданного текстовым значением c, после даты d

ROUND(d,fmt) - возвращает дату, округленную до формата, заданного вторым (необязательным) параметром

TRUNC(d,fmt) - возвращает дату, усеченную до формата, заданного вторым (необязательным) параметром

  1. Язык SQL Oracle. Назначение и возможности команды CREATE TABLE. Пример

Для создания реляционной таблицы в вашей собственной схеме необходима системная привилегия CREATE TABLE .

Таблицы создаются командой CREATE TABLE. Эта команда создает пустую

таблицу - таблицу без строк. Значения вводятся с помощью DML команды

INSERT . Команда CREATE TABLE в основном определяет имя

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

Команда SQL Create Table предназначена для описания структуры таблицы. При создании, с помощью CREATE TABLE, любому столбцу с ограничением NOT NULL должно быть установлено значение в каждом предложении INSERT, воздействующем на таблицу.

create table ROOM

(

RomNo integer,

Num number (4),

Seats number(3)

);

  1. Язык SQL Oracle. Назначение и возможности команды ALTER TABLE. Пример