Oracle - технологии создания распределенных информационных систем
Функции работы с датами
Функция |
Возвращаемое значение |
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'. |