Выбрать главу

Конвертирование переменных дата-время

с использованием T0_CHAR() и T0_DATE()

В Oracle есть функции, позволяющие конвертировать значение одного типа

данных в другой тип данных. Некоторые из этих функций были рассмотрены

в предыдущей главе. В этой главе показано, как использовать

T0_CHAR() и T0_DATE() для конвертирования друг в друга строк и переменных

дата-время. В таблице 5.1. перечислены функции T0_CHAR() и Т0_

DATEO.

Давайте сначала посмотрим, как использовать T0_CHAR() для преобразования

даты-времени в строку. Позже вы увидите, как использовать Т0_

DATE() для преобразования строки в тип данных DATE.

138 Гпава 5

Таблица 5.1. Функции конвертирования TO_CHAR() и TO_DATE()

Функция Описание

T0_CHAR(х [, формат])

Конвертирует число или переменную х типа дата-время в строку.

Можно также указать для х необязательный параметр формат.

В предыдущей главе вы видели, как использовать T0_CHAR() для

преобразования числа в строку. В этой главе вы увидите, как конвертировать

переменную даты-времени в строку.

Т0_0АТЕ(х [, фор- Конвертирует строку х в тип данных DATE,

мат])

Использование T0_CHAR() для конвертирования переменной

дата-время в строку

Для конвертирования переменной дата-время х в строку можно использовать

функцию T0_CHAR(x [, формат]). Вы можете задать здесь дополнительный

параметр format, который описывает формат, в котором предлагается

переменная х. Примером формата может служить MONTH DD, YYYY, где:

■ MONTH - полное имя месяца в верхнем регистре, например JANUARY,

■ DD - двузначный номер дня,

■ YYYY - четырехзначный номер года.

В следующем примере функция T0J3HAR ( ) используется для конвертирования

столбца dob из таблицы customers в строку в формате MONTH DD, YYYY:

П SELECT customer_id, T0_CHAR(dob, 'MONTH DD, YYYY')

FROM customers;

CUSTOMER_ID T0_CHAR(DOB,'MONTH

В следующем примере с помощью функции SYSDATE из базы данных извлекается

значение текущей даты и времени и при помощи функции T0_CHAR()

оно конвертируется в строку формата MONTH DD, YYYY, HH24:MI:SS. Часть этого

формата, относящаяся ко времени, указывает, что часы представлены

в 24-часовом формате и что в нем присутствуют минуты и секунды.

П SELECT TO_CHAR(SYSDATE, 'MONTH DD, YYYY, HH24:HI:SS')

FROM dual;

T0_CHAR(SYSDATE,’ MONTHDD,YYY

NOVEMBER 05, 2007, 12:34:36

Когда вы используете для конвертирования переменной дата-время

в строку функцию T0_CHAR(), в строке формата имеется некоторое число

1 JANUARY 01, 1965

2 FEBRUARY 05, 1968

3 MARCH 16, 1971

4

5 MAY 20, 1970

Хранение и обработка дат и времени 139

параметров, влияющих на вид возвращаемой строки. Некоторые из этих

параметров перечислены в таблице 5.2.

Таблица 5.2. Параметры форматирования переменных дата-время

Аспект Параметр Описание Пример

Столетие СС

SCC

Квартал Q

ГОД YYYY

IYYY

RRRR

SYYYY

Месяц

Y.YYY

YYY

IYY

YY

IY

RR

Y

I

YEAR

Year

ММ

MONTH

Month

Двузначное столетие.

Двузначное столетие со знаком минус (-) для дат

до нашей эры.

Однозначный номер квартала года.

Все четыре цифры года.

Все четыре цифры года по ISO.

Все четыре цифры округленного года, которые зависят

от текущего года (Подробнее см. в разделе

“Как Oracle интерпретирует двузначное представление

года”.)

Все четыре цифры года со знаком минус (-) для

дат до нашей эры.

Все четыре цифры года с запятой-разделителем

после первой цифры.

Три последние цифры года.

Три последние цифры года по ISO.

Две последние цифры года.

Две последние цифры года по ISO

Две последние цифры округленного года, которые

зависят от текущего года (Подробнее см. в разделе

“Как Oracle интерпретирует двузначное представление

года”.)

Последняя цифра года.

Последняя цифра года по ISO.

Обозначение года в верхнем регистре.

Обозначение года с первыми буквами каждого

слова в верхнем регистре.

Двузначный номер месяца года.

Полное название месяца в верхнем регистре, дополненное

справа пробелами до общей длины в

девять символов.

Полное название месяца с первой буквой в верхнем

регистре, дополненное справа пробелами до

общей длины в девять символов.

21

-10

1

2008

2008

2008

-1001

2,008

008

008

08

08

08

TWO

THOUSANDEIGHT.

Two Thousand-

Eight.

01

JANUARY

January

140 Глава 5

Таблица 5.2. Параметры форматирования переменных дата-время (продолжение)

Аспект Параметр Описание Пример