|
|||||||||||||||||||||||||||||||
Преобразование данных
Время создания: 04.05.2019 22:09
Раздел: Разные закладки - Microsoft SQL Server
Запись: xintrea/mytetra_db_adgaver_new/master/base/1556996999nv5muyvpic/text.html на raw.githubusercontent.com
|
|||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||
Преобразование данныхПоследнее обновление: 29.07.2017 Когда мы присваиваем значение одного одного типа столбцу, который хранит данные другого типа, либо выполняем операции, которые вовлекают данные разных типов, SQL Server пытается выполнить преобразование и привести используемое значение к нужному типу. Но не все преобразования SQL Server может выполнить автоматически. SQL Server может выполнять неявные преобразования от типа с меньшим приоритетом к типу с большим приоритетом. Таблица приоритетов (чем выше, тем больший приоритет):
То есть SQL Server автоматически может преобразовать число 100.0 (float) в дату и время (datetime). В тех случаях, когда необходимо выполнить преобразования от типов с высшим приоритетом к типам с низшим приоритетом, то надо выполнять явное приведение типов. Для этого в T-SQL определены две функции: CONVERT и CAST. Функция CAST преобразует выражение одного типа к другому. Она имеет следующую форму:
Для примера возьмем следующие таблицы:
Например, при выводе информации о заказах преобразует числовое значение и дату в строку:
ConvertБольшую часть преобразований охватывает функция CAST. Если же необходимо какое-то дополнительное форматирование, то можно использовать функцию CONVERT. Она имеет следующую форму:
Третий необязательный параметр задает стиль форматирования данных. Этот параметр представляет числовое значение, которое для разных типов данных имеет разную интерпретацию. Например, некоторые значения для форматирования дат и времени:
Некоторые значения для форматирования данных типа money в строку:
Например, выведем дату и стоимость заказов с форматированием:
TRY_CONVERTПри использовании функций CAST и CONVERT SQL Server выбрасывает исключение, если данные нельзя привести к определенному типу. Например:
Чтобы избежать генерации исключения можно использовать функцию TRY_CONVERT. Ее использование аналогично функции CONVERT за тем исключением, что если выражение не удается преобразовать к нужному типу, то функция возвращает NULL:
Дополнительные функцииКроме CAST, CONVERT, TRY_CONVERT есть еще ряд функций, которые могут использоваться для преобразования в ряд типов:
|
|||||||||||||||||||||||||||||||
Так же в этом разделе:
|
|||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||
|