Функции работы с датами

Функция

Возвращаемое значение

ADD-MONTHS (d,n)

Дата d плюс n месяцев.

LAST-DAY (d)

Последнее число месяца, указанного в d

MONTHS-BETWEEN (d,e)

Число месяцев между датами d1 и d2.

NEW-TIME (d,a,b)

Дата и время в часовом поясе a, соответствующие дате и времени в часовом поясе b, при этом d,a и b значения типа CHAR, определяющие часовые пояса.

NEW-DAY (d,char)

Дата первого после даты (/дня недели, название которого записано в с1шг.

SYSDATE

Текущая дата и время.

Усечение и округление дат

Функция

Возвращаемое значение

ROUND(d[,fmt])

Дата d, округленная до единиц, указанных в форматной маске.

TRUNC(d[,fmt])

Дата d, усеченная по форматной маске fmt.

Форматные маски дат для функций ROUND и TRUNC.

В таблице перечислены форматные маски, которые можно использовать в функциях ROUND и TRUNC. По умолчанию используется форматная маска "DD".

Форматная маска

Возвращаемое значение

CC или SCC

Первый день столетия

SYYYY или YYYY или YYY или YY или Y или YEAR или SYEAR

Первый день года ( округляется до 1 июля)

Q

Первый день квартала (округляется до 16 числа второго месяца квартала)

MONTH или MON или MM или RM

Первый день месяца (округляется до 16 числа)

WW или IW

Тот же день недели, что и первый день текущего года

W

Тот же день недели, что и первый день текущего месяца

DDD или DDD или J

День

DAY или DY или D

Первый день недели

HH HH12 HH24

Час

MI

Минута

Функции преобразования

Функция

Возвращаемое значение

CHARTOROWID(char)

Char преобразуется из типа данных CHAR

в тип данных ROWID

CONVERT( char, dest_char_set [,source_char_set])

Преобразует символьную строку из набора символов source_char_set в набор символов dest_char_set

HEXTORAW ( char)

Преобразует значение char, содержащее шестнадцатиричные цифры, в значение типа данных RAW

RAWTOHEX ( raw)

Преобразует raw в символьное значение, содержащее его шестнадцатиричный эквивалент

ROWIDTOCHAR (rowid)

Преобразует значение типа ROWID в значение типа CHAR

TO_CHAR ( expr [,fmt [,'nls_num_fmt']])

Преобразует значение expr типа DATE или NUMBER в значение типа CHAR по формату форматной маски fmt. Если fmt отсутствует, значения типа DATE преобразуются по формату, заданному по умолчанию, и значения типа NUMBER- в значение типа CHAR с шириной, достаточной для того, чтобы вместить все значащие цифры. Значение 'nls_num_fmt' определяет связанные с языком форматные маски. В Trusted ORACLE преобразует значения MLS или MLS_LABEL в значение типа VARCHAR2

TO_DATE ( char[,fmt [,'nls_lang']])

Преобразует char в значение типа DATE с помощью форматной маски fmt. Если fmt опускается, используется форматная маска для даты, принятая по умолчанию.'nls_ang' задает язык, используемый в названиях месяцев и дней

TO_MULTI_BYTE ( char)

Преобразует однобайтовые символы, имеющие многобайтовые эквиваленты, в соответствующие многобайтовые символы

TO_NUMBER (char [,fmt [,'nls_lang']])

Преобразует char, содержащее число в формате, указанном параметром fmt, в значение типа NUMBER. 'nls_lang' задает язык, определяющий символы валют и числовые разделители

TO_SINGLE_BYTE ( char)

Преобразует многобайтовые символы, имеющие однобайтовые эквиваленты, в соответствующие однобайтовые символы

Форматные маски.

Этот раздел описывет форматные маски дат и чисел.

Форматные маски дат в TO_CHAR и TO_DATE.

Элементы форматной маски даты перечислены в приведенной ниже таблице. Любую комбинацию этих элементов можно использовать как аргумент fmt функций TO_CHAR или TO_DATE. По умолчанию fmt равен 'DD-MON-YY'.

Элемент формата

Возвращаемое значение

SCC или CC

Столетие; если указано 'S' то перед датами до нашей эры ставится '-'.

YYYY или SYYYY

Год; если указано'S' то перед датами до нашей эры ставится '-'.

YYY или YY или Y] Последние 3, 2, или1 цифра года.

IYYY

4 цифры года по стандарту ISO.

IYY или IY или I] Последние 3, 2, или1 цифра года по стандарту ISO.

Y,YYY

Год с запятой в указанной позиции.

SYEAR или YEAR

Год, записанный словами, а не цифрами; если указано'S' то перед датами до нашей эры ставится '-'.

RR

Последние 2 цифры года; для указания года в других столетиях.

BC или AD

BC- до нашей эры(до н.э.); AD - нашей эры

B.C. или A.D.

B.C.- до нашей эры(до н.э.); A.D. - нашей эры

Q

Квартал (1, 2, 3, 4;JAN-MAR=1).

MM

Месяц(01-12; JAN=1).

RM

Нумерация месяцев римскими цифрами(I-XII; JAN=I).

MONTH

Название месяца, дополненное пробелами до 9-ти символов.

MON

Сокращенное название месяца.

WW или W

Неделя года (1-52) или месяца (1-5).

IW

Неделя года (1-52 или 1-53) по стандарту ISO.

DDD или DD или D

День года (1-366) или месяца (1-31) или недели (1-7).

DAY

Название дня, дополненное пробелами до 9-ти символов.

DY

Сокращенное название дня.

J

Дата юлианского календаря; число дней, считая с первого января 4712 года до н.э.

AM или PM

AM -до полудня,PM- после полудня

A.M. или P.M.

A.M. -до полудня,P.M.- после полудня

HH или HH12

Час дня (1-12).

HH24

Час дня (0-23).

MI

Минута (0-59)

SS или SSSSS

Секунда (0-59) или количество секунд после полуночи (0-86399).

-/,.;:

Знаки пунктуации.

"...текст..."

Текст воспр в возвращенном значении.

Префикы и суффиксы элементов формата даты

К элементам формата даты можно добавлять следующие префиксы:

FM

"Режим заполнения".Подавляет заполнение пробелами, когда стоит перед MONTH или DAY

FX

"Точный формат". Этот модификатор задает точное соответствие символьного аргумента и форматной маски даты в функции TO_DATE.

К элементам формата даты можно добавлятть следующие суффиксы:

TH

Порядковый номер ("DDTH" для "4TH").

SP

Номер, записанный словами ("DDSP" для "FOUR").

SPTH и THSP

Порядковый номер, записанный словами ("DDSPTH" для "FOURTH").

Прописные и строчные буквы в элементах формата даты.

Следующие строки задают вывод прописными буквами, вывод прописными буквами только начальных букв слов, или вывод строчными буквами.

Прописные

Прописная начальная

Строчные

DAY

Day

.day

DY

Dy

.dy

MONTH

Month

.month

MON

Mon

.mon

YEAR

Year

.year

AM

Am

.am

PM

Pm

.pm

A.M.

A.m.

a.m.

P.M.

P.m.

p.m.

Если к элементу формата даты добавляется префикс или суффикс, то регистр (прописные, строчные буквы) определяется элементом формаиа , а не префиксом или суффиксом. Например, 'ddTH ' задает "04th" а не "04TH".

Элементы формата числа для TO_CHAR

В следующей таблице перечислены элементы формата числа. Комбинацию этих элементов можно использовать как аргумент fnu функции TO_CHAR.

Элемент

формата

Пример

Описание

9

'999'

Количество девяток указывает число возвращаемых значащих цифр.

0

'0999'

Добавляет нули перед числом.

$

'$9999'

Добавляет знак доллара перед числом.

В

'В9999'

Заменяет нулевые значения пробелами.

Ml

'99999MI'

Возвращает знак '-' после отрицательных значении.

S

S9999

Возвращает знак '+' для положительных значений и знак '-' для отрицательных значений в указанную позицию.

PR

'9999PR'

Возвращает отрицательные значения в <угловых скобках>.

D

99D99

Возвращает символ, представляющий десятичную точку, в указанную позицию.

С

9G999

Возвращает символ разделения цифр на группы в указанную позицию.

С

С999

Возвращает международной знак валюты в указанную позицию.

L

L999

Возвращает знак местной валюты в указанную позицию.

,

'9,999'

Возвращает запятую в указанную позицию.

.

'99.99'

Возвращает точку в указанную позицию.

V

'999V99'

Умножает значение на 10n, где n количество девяток после 'V'.

ЕЕЕЕ

'9.999ЕЕЕЕ'

Возвращает значение в нормализованной форме. В fnu должно быть ровно четыре буквы 'Е'.

RN или rn

RN

Возвращает римские цифры прописными или строчными буквами (целое число в диапазоне от 1 до 3999).

DATE

'DATE'

Возвращает значение, преобразованное из даты юлианского календаря в формат 'MM/DD/YY'.

Назад | Содержание | Вперед