Конвертирование переменных дата-время
с использованием 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. Параметры форматирования переменных дата-время (продолжение)
Аспект Параметр Описание Пример