Явное Преобразование типа данных. Функция convert sql
SQL сервер CONVERT() Function
Определение и использование
CONVERT() функция является общей функцией , которая преобразует выражение одного типа данных в другой.
CONVERT() функция может быть использована для отображения данных о дате / времени в различных форматах.
Синтаксис
CONVERT(data_type(length),expression,style)
data_type(length) | Указывает тип данных назначения (с дополнительной длины) |
expression | Задает значение, которое должно быть преобразовано |
style | Задает формат вывода даты / времени (смотрите таблицу ниже) |
Значение стиля может быть одним из следующих значений:
- | 0 or 100 | mon dd yyyy hh:miAM (or PM) | Default |
1 | 101 | 1 = mm/dd/yy101 = mm/dd/yyyy | USA |
2 | 102 | 2 = yy.mm.dd102 = yyyy.mm.dd | ANSI |
3 | 103 | 3 = dd/mm/yy103 = dd/mm/yyyy | British/French |
4 | 104 | 4 = dd.mm.yy104 = dd.mm.yyyy | German |
5 | 105 | 5 = dd-mm-yy105 = dd-mm-yyyy | Italian |
6 | 106 | 6 = dd mon yy106 = dd mon yyyy | - |
7 | 107 | 7 = Mon dd, yy107 = Mon dd, yyyy | - |
8 | 108 | hh:mm:ss | - |
- | 9 or 109 | mon dd yyyy hh:mi:ss:mmmAM (or PM) | Default + millisec |
10 | 110 | 10 = mm-dd-yy110 = mm-dd-yyyy | USA |
11 | 111 | 11 = yy/mm/dd111 = yyyy/mm/dd | Japan |
12 | 112 | 12 = yymmdd112 = yyyymmdd | ISO |
- | 13 or 113 | dd mon yyyy hh:mi:ss:mmm (24h) | Europe default + millisec |
14 | 114 | hh:mi:ss:mmm (24h) | - |
- | 20 or 120 | yyyy-mm-dd hh:mi:ss (24h) | ODBC canonical |
- | 21 or 121 | yyyy-mm-dd hh:mi:ss.mmm (24h) | ODBC canonical (with milliseconds) default for time, date, datetime2, and datetimeoffset |
- | 126 | yyyy-mm-ddThh:mi:ss.mmm (no spaces) | ISO8601 |
- | 127 | yyyy-mm-ddThh:mi:ss.mmmZ (no spaces) | ISO8601 with time zone Z |
- | 130 | dd mon yyyy hh:mi:ss:mmmAM | Hijiri |
- | 131 | dd/mm/yy hh:mi:ss:mmmAM | Hijiri |
Example
Следующий скрипт использует CONVERT() функцию для отображения различных форматов. Мы будем использовать GETDATE() функцию , чтобы получить текущую дату / время:
CONVERT(VARCHAR(19),GETDATE()) CONVERT(VARCHAR(10),GETDATE(),10) CONVERT(VARCHAR(10),GETDATE(),110) CONVERT(VARCHAR(11),GETDATE(),6) CONVERT(VARCHAR(11),GETDATE(),106) CONVERT(VARCHAR(24),GETDATE(),113)
Результат будет выглядеть следующим образом:
Nov 04 2014 11:45 PM 11-04-14 11-04-2014 04 Nov 14 04 Nov 2014 04 Nov 2014 11:45:34:243
www.w3bai.com
Синтаксис функции CONVERT в СУБД в SQL Server
Синтаксис функции CONVERT в СУБД в SQL Server может быть более сложным, однако за эту функциональность стоит платить — можно распоряжаться не только типами данных, но и форматированием результирующего набора данных. Параметры length и style в аргументах функции необязательны. Параметр length используется для типов данных, имеющих длину (таких как VARCHAR, CHAR, NCHAR и VARBINARY), а параметр style — для преобразования типов datetime и smalldatetime в текст. (Дополнительно определяется, как результирующая строка будет форматироваться; к примеру, с указанием века, с миллисекундами и т. д.) Тип данных может быть встроенным; пользовательские типы данных не поддерживаются. К примеру, представление базы данных V_CUSTOMER_TOTAL базы данных ACME имеет столбец TOTAL_PRICE числового типа данных. Чтобы отобразить эти данные с предшествующим знаком доллара ($), нужно перед операцией конкатенации преобразовать число в символьный тип данных. (В данном случае Oracle выполняет неявное преобразование, в то время как СУБД DB2 9.5 и Microsoft SQL Server требуют явного преобразования, в противном случае будет сгенерирована ошибка.) СУБД Oracle неявно преобразует числовые типы данных (и совместимые с ними) в символьные строки при их объединении оператором конкатенации. Пример объединения числа (столбец TOTAL_PRICE) с символьной Обработка данных в SQL обычно не требует внедрения в детали двоичного кода. В отличие от других производителей СУБД, Oracle предлагает функцию для преобразования двоичных данных в числа. К примеру, двоичным представлением десятичного числа 8 является 1000. Функция bin_to_num(1,0,0,0) , к примеру, вернет число 8. Ниже приведен синтаксис Microsoft SQL Server 2008 данного запроса (для достижения того же результата можно применить функцию CONVERT). Шаблоны формата представляют сбой литералы, описывающие, как даты и время должны быть представлены в строках, или как должна интерпретироваться строка в целях преобразования в дату или число. Шаблон формата не изменит внутреннего представления данных; он влияет только на способ отображения информации. В Oracle и IBM DB2 для этого применяют предопределенные шаблоны форматов; в то же время в Microsoft SQL Server шаблонам назначаются определенные коды.
Похожие публикации
new-techs.ru
ASCIISTR | Функция Oracle / PLSQL ASCIISTR преобразует строку любого набора символов к ASCII строке, используя набор символов базы данных. |
BIN_TO_NUM | Функция Oracle / PLSQL BIN_TO_NUM преобразует вектор в соответствующее десятичное число. |
CAST | Функция Oracle / PLSQL CAST конвертирует (преобразует) один тип данных в другой. |
CHARTOROWID | Функция Oracle / PLSQL CHARTOROWID преобразует символ, varchar2, NCHAR или NVARCHAR2 к ROWID. |
COMPOSE | Функция Oracle / PLSQL COMPOSE возвращает строку Unicode. |
CONVERT | Функция Oracle / PLSQL CONVERT преобразует строку из одного набора символов в другой. |
DECOMPOSE | Функция Oracle / PLSQL DECOMPOSE принимает строку и возвращает строку Unicode. |
FROM_TZ | Функция Oracle / PLSQL FROM_TZ преобразует значение TIMESTAMP (с учетом TIME ZONE), для значения TIMESTAMP WITH TIME ZONE. |
HEXTORAW | Функция Oracle / PLSQL HEXTORAW преобразует строку, представляющую шестнадцатеричное число в значение типа RAW. |
NUMTODSINTERVAL | Функция Oracle / PLSQL NUMTODSINTERVAL преобразует числовое значение в значение типа INTERVAL DAY TO SECOND. |
NUMTOYMINTERVAL | Функция Oracle / PLSQL NUMTOYMINTERVAL преобразует числовое значение в значение типа INTERVAL YEAR TO MONTH. |
RAWTOHEX | Функция Oracle / PLSQL RAWTOHEX преобразует значение типа RAW в шестнадцатеричное представление символа. |
TO_CLOB | Функция Oracle / PLSQL TO_CLOB преобразует символьные данные типа CLOB |
TO_DSINTERVAL | Функция Oracle / PLSQL TO_DSINTERVAL преобразует строку в интервал от DAY до SECONDS. |
TO_LOB | Функция Oracle / PLSQL TO_LOB преобразует LONG или LONG RAW значения в LOB значений. |
TO_MULTI_BYTE | Функция Oracle / PLSQL TO_MULTI_BYTE возвращает символьное значение со всех однобайтовых символов и преобразовывает в многобайтовые символы. Для использования этой функции, набор символов вашей базы данных должен состоять как из однобайтных, так и из многобайтных символов. |
TO_NCLOB | Функция Oracle / PLSQL TO_NCLOB преобразует значение LOB в значение NCLOB. |
TO_NUMBER | Функция Oracle / PLSQL TO_NUMBER преобразует строку в число. |
TO_SINGLE_BYTE | Функция Oracle / PLSQL TO_SINGLE_BYTE возвращает значение символа в котором все многобайтовые символы преобразованы в однобайтовые символы. Для использования этой функции, набор символов вашей базы данных должен состоять как из однобайтовых, так и из многобайтовых символов. |
TO_TIMESTAMP_TZ | Функция Oracle / PLSQL TO_TIMESTAMP_TZ преобразует строку в значение типа TIMESTAMP с TIMEZONE (часовым поясом). |
TO_TIMESTAMP | Функция Oracle / PLSQL TO_TIMESTAMP преобразует строку в значение TIMESTAMP. |
TO_YMINTERVAL | Функция Oracle / PLSQL TO_YMINTERVAL преобразует строку в значение типа NTERVAL от YEAR до MONTH. |
oracleplsql.ru
Явное Преобразование типа данных | ora-sql.ru
SQL обеспечивает три функции, чтобы явно преобразовать значение из одного типа данных в другой.
TO_CHAR(number|date,[ fmt], [nlsparams]) |
Преобразовывает число или дату в символьную строку VARCHAR2 с моделью формата fmt Преобразование чисел: Параметр nlsparams определяет следующие символы, которые возвращаются элементами числового формата:
Если nlsparams или любой другой параметр опускается, эта функция использует значения параметра по умолчанию для сеанса. |
Явное Преобразование типа данных
TO_CHAR(number|date,[ fmt], [nlsparams]) | Преобразование даты: Параметр nlsparams определяет язык, на котором возвращаются названия месяцев и дней, а также сокращения. Если этот параметр опускается, данная функция использует языки даты по умолчанию для сеанса. |
TO_NUMBER(char,[fmt], [nlsparams]) | Преобразовывает символьную строку, содержащую цифры, к числу в формате, определенном опциональной моделью формата fmt.У параметра nlsparams та же самая задача в этой функции, как в функции TO_CHAR для преобразования чисел. |
TO_DATE(char,[fmt],[nlsparams]) | Преобразовывает символьную строку, представляющую дату, к значению даты согласно указанному формату fmt. Если fmt опускается, форматом является DD-MON-YY.Параметр nlsparams играет ту же роль в этой функции, как в функции TO_CHAR для преобразования даты. |
Явное Преобразование типа данных
Отметьте: список функций, упоминаемых в этой рубрике, включает только некоторые из доступных функций преобразования.
Для получения дополнительной информации см. раздел по "Функциям преобразования" в Справочнике Языка SQL БД Oracle 11g, Выпуск 1 (11.1).
Далее: Функции AVG, SUM, MIN и MAX
ora-sql.ru