sql что такое cast

Преобразование типов данных (ядро СУБД)

Преобразование типов данных происходит в следующих случаях:

При взаимных преобразованиях переменных приложения и столбцов результирующих наборов SQL Server, кодов возврата, параметров и маркеров параметров поддерживаемые преобразования типов данных определяются API базы данных.

Явное и неявное преобразование

Преобразование типов данных бывает явным и неявным.

Неявное преобразование скрыто от пользователя. SQL Server автоматически преобразует данные из одного типа в другой. Например, если smallint сравнивается с int, то перед сравнением smallint неявно преобразуется в int.

GETDATE() выполняет неявное преобразование в стиль даты 0. SYSDATETIME() выполняет неявное преобразование в стиль даты 21.

Явное преобразование выполняется с помощью функций CAST и CONVERT.

Если программный код Transact-SQL должен соответствовать требованиям ISO, используйте функцию CAST вместо CONVERT. Использование функции CONVERT вместо CAST дает преимущество в дополнительной функциональности.

На следующей иллюстрации показаны все явные и неявные преобразования типов данных, допустимые для системных типов данных SQL Server. Это могут быть типы xml, bigint и sql_variant. При присваивании неявного преобразования из типа sql_variant не происходит, но неявное преобразование в тип sql_variant производится.

Хотя на приведенной выше диаграмме показаны все явные и неявные преобразования, которые допускаются в SQL Server, в ней не указан результирующий тип данных. Когда SQL Server выполняет явное преобразование, сам оператор определяет результирующий тип данных. Для неявных преобразований операторы назначения, такие как установка значения переменной или вставка значения в столбец, дают в результате тип данных, определенный в объявлении переменной или в определении столбца. Для операторов сравнения или других выражений результирующий тип данных зависит от правил приоритета типов данных.

В следующем примере показан похожий сценарий с переменной int :

В этом случае оператор SELECT выдает следующую ошибку:

Msg 245, Level 16, State 1, Line 3 Conversion failed when converting the varchar value ‘ is not a string.’ to data type int.

Поведение преобразования типов данных

Некоторые виды явного и неявного преобразования типов данных не поддерживаются при преобразовании типа данных одного объекта SQL Server в тип данных другого объекта. Например, значение типа nchar нельзя преобразовать в значение типа image. Тип данных nchar можно преобразовать в тип данных binary только явно. Неявное преобразование в binary не поддерживается. Однако тип данных nchar можно преобразовать в тип nvarchar как явно, так и неявно.

В следующих подразделах приведено описание процесса преобразования следующих типов данных:

Преобразование типов данных с помощью хранимых процедур OLE-автоматизации

Поскольку SQL Server использует типы данных Transact-SQL, а OLE-автоматизация — типы данных Visual Basic, хранимым процедурам OLE-автоматизации приходится преобразовывать данные, которыми они обмениваются.

В следующей таблице описываются преобразования типов данных SQL Server в типы данных Visual Basic.

Тип данных SQL Server Тип данных в Visual Basic
char, varchar, text, nvarchar, ntext String
decimal, numeric String
bit Boolean
binary, varbinary, image Одномерный массив Byte()
int Long
smallint Целое число
tinyint Byte
float Double
real Single
money, smallmoney Валюта
datetime, smalldatetime Дата
Все значения NULL Variant со значением NULL

Все одиночные значения SQL Server преобразуются в одиночные значения Visual Basic, за исключением binary, varbinary и image. В Visual Basic эти значения преобразуются в одномерные массивы Byte(). Этот массив имеет диапазон Byte( от 0 до length 1 ), где length — число байтов в значениях SQL Server binary, varbinary или image.

Ниже приведена таблица преобразования типов данных Visual Basic в типы данных SQL Server.

Источник

Преобразование типов и оператор CAST стр. 2

Рассмотрим еще один пример.

Определить средний год спуска на воду кораблей из таблицы Ships.

А если нас интересует результат с заданной точностью, скажем, до двух десятичных знаков? Применение выражения CAST к среднему значению ничего не даст по указанной выше причине. Действительно,

вернет значение 1926.00. Следовательно, CAST нужно применить к аргументу агрегатной функции:

Результат — 1926.90909. Опять не то. Причина состоит в том, что при вычислении среднего значения было выполнено неявное преобразование типа. Сделаем еще один шаг:

В результате получим то, что нужно — 1926.91. Однако это решение выглядит очень громоздко. Заставим неявное преобразование типа поработать на нас:

Теперь мы использовали неявное преобразование целочисленного аргумента к точному числовому типу (EXACT NUMERIC), умножив его на вещественную единицу, после чего применили явное приведения типа результата агрегатной функции.

Функция CONVERT имеет следующий синтаксис:

Основное отличие функции CONVERT от функции CAST состоит в том, что первая позволяет форматировать данные (например, темпоральные данные типа datetime) при преобразовании их к символьному типу и указывать формат при обратном преобразовании. Разные целочисленные значения необязательного аргумента стиль соответствуют различным типам форматов. Рассмотрим следующий пример

Здесь мы преобразуем строковое представление даты к типу datetime, после чего выполняем обратное преобразование, чтобы продемонстрировать результат форматирования. Поскольку значение аргумента стиль не задано используется значение по умолчанию (0 или 100). В результате получим:

Jul 22 2003 12:00AM

Ниже приведены некоторые другие значения аргумента стиль и результат, полученный на приведенном выше примере. Заметим, что увеличение значения стиль на 100 приводит к четырехзначному отображению года.

1 07/22/03
11 03/07/22
3 22/07/03
121 2003-07-22 00:00:00.000

Перечень всех возможных значений аргумента стиль можно посмотреть в BOL.

Источник

Функции CAST и CONVERT (Transact-SQL)

Эти функции преобразуют выражение одного типа данных в другой.

Синтаксис

Синтаксические обозначения в Transact-SQL

Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.

Аргументы

data_type
Целевой тип данных. Это может быть xml, bigint и sql_variant. Псевдонимы типов данных недопустимы.

length
Указываемое дополнительно целое число, обозначающее длину целевого типа данных, который допускает указание длины пользователем. Значение по умолчанию — 30.

style
Целочисленное выражение, определяющее, как функция CONVERT преобразует значение аргумента expression. Для значения стиля NULL возвращается NULL. Аргумент data_type определяет диапазон.

Типы возвращаемых данных

Возвращает значение аргумента expression, преобразованное в тип data_type.

Стили даты и времени

Если аргумент expression принадлежит к типу данных даты или времени, аргумент style может иметь одно из значений, приведенных в таблице ниже. Другие значения обрабатываются как 0. Начиная с SQL Server 2012 (11.x), преобразование типов даты и времени в datetimeoffset поддерживается только для стилей 0 и 1. Все другие стили преобразования возвращают ошибку 9809.

SQL Server поддерживает формат даты в арабском стиле, используя кувейтский алгоритм.

Примечание. Для равного 0 значения миллисекунд (ммм) значение десятичной части не отображается. Например, значение «2012-11-07T18:26:20.000» отображается как «2012-11-07T18:26:20». — 127( 6, 7 ) ISO8601 с часовым поясом П. гггг-ММ-ддTчч:мм:сс.fffZ (без пробелов)

Примечание. Для равного 0 значения миллисекунд (ммм) значение десятичной части не отображается. Например, значение «2012-11-07T18:26:20.000» будет отображаться как «2012-11-07T18:26:20». — 130 ( 1, 2 ) Хиджра ( 5 ) дд мес гггг чч:ми:сс:мммAM

В этом стиле мес является представлением Юникода полного названия месяца в Хиджре. Это значение не отображается правильно при установке SSMS языковой версии «Английский (США)» по умолчанию. — 131 ( 2 ) Хиджра ( 5 ) дд/мм/гггг чч:ми:сс:мммAM

1 Эти значения стилей возвращают недетерминированные результаты. Включают в себя все стили «гг» (без номера века) и часть стилей «гггг» (с номером века).

2 Значения по умолчанию (0 или 100, 9 или 109, 13 или 113, 20 или 120, 23 и 21 или 25 или 121) всегда возвращают год с веком (гггг).

3 Вход при преобразовании в тип datetime; выход при преобразовании в символьные данные.

4 Для использования в формате XML. Для преобразования из datetime или smalldatetime в символьные данные формат вывода должен быть таким, как описано в предыдущей таблице.

5 Хиджра — календарная система с несколькими вариантами. В SQL Server используется кувейтский алгоритм.

По умолчанию SQL Server интерпретирует двузначные значения года с пороговым значением 2049. Это означает, что SQL Server интерпретирует двухзначное значение года 49 как 2049, а двухзначное значение 50 — как 1950. В большинстве клиентских приложений, основанных, в частности, на объектах автоматизации, 2030 год используется в качестве порогового значения. SQL Server предоставляет параметр настройки двузначного порогового значения года, с помощью которого можно изменить пороговое значение года, используемое в SQL Server. Это позволяет обеспечить согласованную обработку дат. Рекомендуется использовать четырехзначные года.

6 Поддерживается только при приведении символьных данных к типу datetime или smalldatetime. При приведении символьных данных, представляющих только дату или только время, к типам datetime и smalldatetime неуказанное время устанавливается в 00:00:00.000, а неуказанная дата — в 1900-01-01.

При преобразовании в символьные данные из smalldatetime стили, включающие секунды или миллисекунды, будут содержать нули в соответствующих позициях. При преобразовании из datetime или smalldatetime ненужные части даты можно усекать с помощью типа данных char или varchar соответствующей длины.

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

Стили данных float и real

Если аргумент expression принадлежит к типу данных float или real, аргумент style может иметь одно из значений, приведенных в таблице ниже. Другие значения обрабатываются как 0.

Значение Выходные данные
0 (по умолчанию) Не более 6 разрядов. По необходимости используется экспоненциальное представление чисел.
1 Всегда 8 разрядов. Всегда используется экспоненциальное представление чисел.
2 Всегда 16 разрядов. Всегда используется экспоненциальное представление чисел.
3 Всегда 17 разрядов. Используется для преобразования без потери данных. При использовании этого стиля каждое отдельное значение типа float или real гарантированно преобразуется в отдельную строку символов.

Применимо к: SQL Server (начиная с SQL Server 2016 (13.x);) и База данных SQL Azure.

126, 128, 129 Включено для совместимости с прежними версиями. В следующих версиях эти значения могут быть исключены.

Стили данных money и smallmoney

Если аргумент expression принадлежит к типу данных money или smallmoney, аргумент style может иметь одно из значений, приведенных в таблице ниже. Другие значения обрабатываются как 0.

Значение Выходные данные
0 (по умолчанию) Без запятых, разделяющих группы разрядов, с двумя цифрами справа от десятичного разделителя.

Пример 4235.98.

1 Запятые, разделяющие группы из трех разрядов слева от десятичного разделителя, с двумя цифрами справа от десятичного разделителя.

Пример 3,510.92.

2 Без запятых, разделяющих группы разрядов, с четырьмя цифрами справа от десятичного разделителя.

Пример 4235.9819.

126 Эквивалентно стилю 2 при преобразовании в char(n) или varchar(n)

Стили данных XML

Если аргумент expression принадлежит к типу данных xml, аргумент style может иметь одно из значений, приведенных в таблице ниже. Другие значения обрабатываются как 0.

Значение Выходные данные
0 (по умолчанию) Использовать синтаксический разбор по умолчанию, при котором незначащие пробельные символы удаляются, а внутренние подмножества DTD не разрешены.

При этом для выполнения операций синтаксического анализа без проверки действительности сервер может пользоваться следующей информацией, предоставляемой внутренним подмножеством DTD.

— Применяются атрибуты по умолчанию.
— Ссылки на внутренние сущности разрешаются и раскрываются.
— Проверяется синтаксическая правильность модели содержимого DTD.

Синтаксический анализатор пропускает внешние подмножества DTD. Также не выполняется оценка объявления XML, чтобы определить, имеет ли атрибут standalone значение yes или no. Вместо этого выполняется анализ экземпляра XML как отдельного документа.

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

Стили двоичных данных

Значение Выходные данные
0 (по умолчанию) Преобразует символы ASCII в двоичные байты либо двоичные байты в символы ASCII. Каждый символ или байт преобразуется в соотношении 1:1.

Если параметр data_type имеет значение binary, к результату слева добавляются символы 0x.

1, 2 Если параметр data_type имеет значение binary, выражение должно быть символьным. Значение аргумента expression должно состоять из четного числа шестнадцатеричных знаков (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, a, b, c, d, e, f). Если аргумент style имеет значение 1, в качестве первых двух символов выражения обязательно использовать 0x. Если выражение содержит нечетное число символов или использованы недопустимые символы, возникает ошибка.

Если длина преобразованного выражения превышает длину типа данных data_type, результат усекается справа.

При использовании значений аргумента data_type фиксированной длины, превышающей длину преобразованного результата, к результату справа добавляются нули.

Аргумент data_type символьного типа требует двоичного выражения. Каждый двоичный символ преобразуется в два шестнадцатеричных символа. Предположим, длина преобразованного выражения превышает длину типа данных data_type. В этом случае оно усекается.

Если для параметра data_type используется значение символьного типа фиксированного размера и длина преобразованного результата меньше длины типа данных data_type, к преобразованному выражению справа добавляются символы пробела, чтобы сохранить четность числа шестнадцатеричных знаков.

Символы 0x не добавляются слева к преобразованному результату для параметра style, равного 2.

Неявные преобразования

Для неявных преобразований не требуется указывать функции CAST или CONVERT. Для явных преобразований указывать функции CAST или CONVERT необходимо. На следующей иллюстрации показаны все явные и неявные преобразования типов данных, допустимые для системных типов данных SQL Server. Это могут быть типы bigint, sql_variant и xml. При присваивании неявного преобразования из типа sql_variant не происходит, но неявное преобразование в тип sql_variant производится.

В Центре загрузки Майкрософт эта диаграмма представлена в виде PNG-файла, который можно скачать.

На приведенной выше диаграмме показаны все явные и неявные преобразования, которые допускаются в SQL Server, однако результирующий тип данных преобразования зависит от выполняемой операции.

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

Типы данных больших значений

Типы данных большого объема демонстрируют то же поведение при явных и неявных преобразованиях, что и их аналоги меньшего объема, а именно типы данных nvarchar, varbinary и varchar. Тем не менее необходимо учитывать следующие правила:

Дополнительные сведения о преобразовании из типа данных xml см. в разделе Создание экземпляров XML-данных.

Тип данных XML

При явном или неявном приведении типа данных xml к строковому или двоичному типу данных содержимое типа данных xml сериализуется согласно набору определенных правил. Сведения об этих правилах см. в разделе Определение сериализации XML-данных. Дополнительные сведения о преобразовании других типов данных в тип данных xml см. в разделе Создание экземпляров XML-данных.

Типы данных text и image

Для типов данных text и image автоматическое преобразование типов не поддерживается. Можно явно преобразовать text в символьные данные, а image — в binary или varbinary, но длиной не более 8000 байт. Если вы попробуете произвести неверное преобразование, например преобразовать символьное выражение, содержащее буквы, в int, SQL Server вернет ошибку.

Параметры сортировки выходных данных

Если входные и выходные данные функций CAST и CONVERT представляют собой символьные строки, у выходных данных будут те же параметры сортировки, что и у входных. Если входные данные не символьная строка, выходным назначаются параметры сортировки по умолчанию для этой базы данных и присваивается метка о том, что этот режим используется принудительно. Дополнительные сведения см. в статье Очередность параметров сортировки (Transact-SQL).

Чтобы назначить выходным данным другие параметры сортировки, примените предложение COLLATE к результирующему выражению функции CAST или CONVERT. Пример:

SELECT CAST(‘abc’ AS varchar(5)) COLLATE French_CS_AS

Усечение и округление результатов

При преобразовании символьных или двоичных выражений (binary, char, nchar, nvarchar, varbinary или varchar) в выражение другого типа данных операция преобразования может усекать выходные данные, отображать их лишь частично или возвращать ошибку. Это происходит в тех случаях, когда результат имеет слишком малую длину для отображения. Результаты преобразований в binary, char, nchar, nvarchar, varbinary или varchar усекаются всегда, за исключением случаев, перечисленных в таблице ниже.

Из типа данных В тип данных Результат
int, smallint или tinyint char *
varchar *
nchar E
nvarchar E
money, smallmoney, numeric, decimal, float или real char E
varchar E
nchar E
nvarchar E

* = результат слишком мал для отображения.

О = ошибка, так как длина результата слишком мала для отображения.

SQL Server гарантирует получение одинаковых результатов в разных версиях только для обратимых преобразований, то есть таких, когда данные преобразуются из исходного типа данных, а затем опять в него. В следующем примере показано обратимое преобразование:

Не пытайтесь составлять данные типа binary, а затем преобразовывать их в данные категории числового типа. SQL Server не гарантирует, что результат преобразования типа данных decimal или numeric в binary будет одинаковым в разных версиях SQL Server.

В следующем примере показано результирующее выражение, которое слишком мало для отображения:

При преобразовании между типами данных с разными длинами дробных частей SQL Server может усекать или округлять результат. В следующей таблице описано это поведение.

От Чтобы Поведение
numeric numeric Round
numeric int Truncate
numeric money Round
money int Round
money numeric Round
float int Truncate
float numeric Round

Точность преобразования значений float, которые используют экспоненциальное представление, в decimal или numeric ограничена только 17 знаками. Любое значение с точностью, превышающей 17 знаков, округляется до нуля.

float datetime Round
datetime int Round

Например, значения 10,6496 и –10,6496 могут усекаться или округляться при преобразовании в тип int или numeric:

Результаты запроса показаны в приведенной ниже таблице.

trunc1 trunc2 round1 round2
10 –10 11 -11

SELECT CAST(10.3496847 AS money);

SQL Server возвращает сообщение об ошибке при попытке преобразовать нечисловые данные типа char, nchar, nvarchar или varchar в тип decimal, float, int или numeric. SQL Server также возвращает сообщение об ошибке при попытке преобразования пустой строки (» «) в тип numeric или decimal.

Некоторые преобразования типа данных даты и времени являются недетерминированными

В следующих стилях преобразование строк в тип datetime недетерминировано:

1 За исключением стилей 20 и 21.

Дополнительные символы (суррогатные пары)

Поддержка совместимости

В предыдущих версиях SQL Server используемый по умолчанию стиль для операций CAST и CONVERT с типами данных time и datetime2 — 121, кроме случая, когда любой из типов используется в выражении вычисляемого столбца. Для вычисляемых столбцов используемый по умолчанию стиль — 0. Это поведение влияет на вычисляемые столбцы при их создании и использовании в запросах с автоматической параметризацией, а также при использовании в определениях ограничений.

При уровне совместимости 110 и выше стиль по умолчанию для операций CAST и CONVERT с типами данных time и datetime2 всегда имеет значение 121. Если запрос основан на прежнем поведении, следует использовать уровень совместимости ниже 110 либо явно задать в затрагиваемом запросе стиль 0.

Значение уровня совместимости Стиль по умолчанию для операций CAST и CONVERT 1 Стиль по умолчанию для вычисляемого столбца
= 110 121 121

1 Кроме вычисляемых столбцов

Обновление базы данных до уровня совместимости 110 и выше не приведет к изменению пользовательских данных, сохраненных на диске. Следует исправить эти данных соответствующим образом вручную. Например, если бы вы использовали предложение SELECT INTO для создания таблицы на основе источника, содержащего описанное выше выражение вычисляемого столбца, то сохранялись бы данные (благодаря стилю 0), а не само определение вычисляемого столбца. В таком случае необходимо вручную обновлять эти данные в соответствии со стилем 121.

Примеры

A. Использование функций CAST и CONVERT

Результирующий набор: Образец результирующего набора одинаков для операций CAST и CONVERT.

Б. Использование функции CAST с арифметическими операторами

В. Использование функции CAST для объединения строк

В этом примере несимвольные выражения сцепляются с помощью функции CAST. В этом примере используется база данных AdventureWorksDW.

Г. Использование функции CAST для получения удобочитаемого текста

Д. Использование функции CAST с предложением LIKE

Е. Использование функции CONVERT или CAST с типизированным XML

В этих примерах показано использование функции CONVERT для преобразования данных в типизированный XML-код с помощью столбцов и типа данных XML (SQL Server).

В этом примере строка, содержащая пробельные символы, текст и разметку, преобразуется в типизированный XML, в котором удаляются все незначащие пробельные символы (пробелы, разделяющие узлы):

В этом примере похожая строка, содержащая пробельные символы, текст и разметку, преобразуется в типизированный XML, в котором сохраняются все незначащие пробельные символы (пробелы, разделяющие узлы):

В этом примере строка, содержащая пробельные символы, текст и разметку, приводится к типизированному XML:

Дополнительные примеры см. в статье Создание экземпляров XML-данных.

Ж. Использование функций CAST и CONVERT с данными типа datetime

З. Использование функции CONVERT с двоичными и символьными данными

В этих примерах показаны результаты преобразования двоичных и символьных данных с использованием различных стилей.

В этом примере показано, что стиль 1 может привести к принудительному усечению результата. К этому приводит наличие символов 0x в результате.

В этом примере показано, что стиль 2 не вызывает усечение результата, так как символы 0x не включены в результат.

Преобразуйте символьное значение «Name» в двоичное значение.

И. Конвертирование типов данных даты и времени

Этот пример демонстрирует преобразование типов данных date, time и datetime.

К. Использование функции CONVERT с данными типа datetime в разных форматах

Начиная со значений GETDATE() этот пример использует функцию CONVERT для отображения всех стилей даты и времени в разделе Стили даты и времени этой статьи.

Номер формата Пример запроса Пример результата
0 SELECT CONVERT(NVARCHAR, GETDATE(), 0) Авг 23 2019 1:39PM
1 SELECT CONVERT(NVARCHAR, GETDATE(), 1) 08/23/19
2 SELECT CONVERT(NVARCHAR, GETDATE(), 2) 19.08.23
3 SELECT CONVERT(NVARCHAR, GETDATE(), 3) 23/08/19
4 SELECT CONVERT(NVARCHAR, GETDATE(), 4) 23.08.19
5 SELECT CONVERT(NVARCHAR, GETDATE(), 5) 23-08-19
6 SELECT CONVERT(NVARCHAR, GETDATE(), 6) 23 авг 19
7 SELECT CONVERT(NVARCHAR, GETDATE(), 7) Авг 23, 19
8 или 24 или 108 SELECT CONVERT(NVARCHAR, GETDATE(), 8) 13:39:17
9 или 109 SELECT CONVERT(NVARCHAR, GETDATE(), 9) Авг 23 2019 1:39:17:090PM
10 SELECT CONVERT(NVARCHAR, GETDATE(), 10) 08-23-19
11 SELECT CONVERT(NVARCHAR, GETDATE(), 11) 19/08/23
12 SELECT CONVERT(NVARCHAR, GETDATE(), 12) 190823
13 или 113 SELECT CONVERT(NVARCHAR, GETDATE(), 13) 23 авг 2019 13:39:17:090
14 или 114 SELECT CONVERT(NVARCHAR, GETDATE(), 14) 13:39:17:090
20 или 120 SELECT CONVERT(NVARCHAR, GETDATE(), 20) 2019-08-23 13:39:17
21 или 25 или 121 SELECT CONVERT(NVARCHAR, GETDATE(), 21) 2019-08-23 13:39:17.090
22 SELECT CONVERT(NVARCHAR, GETDATE(), 22) 08/23/19 1:39:17 PM
23 SELECT CONVERT(NVARCHAR, GETDATE(), 23) 2019-08-23
101 SELECT CONVERT(NVARCHAR, GETDATE(), 101) 08/23/2019
102 SELECT CONVERT(NVARCHAR, GETDATE(), 102) 2019.08.23
103 SELECT CONVERT(NVARCHAR, GETDATE(), 103) 23/08/2019
104 SELECT CONVERT(NVARCHAR, GETDATE(), 104) 23.08.2019
105 SELECT CONVERT(NVARCHAR, GETDATE(), 105) 23-08-2019
106 SELECT CONVERT(NVARCHAR, GETDATE(), 106) 23 авг 2019
107 SELECT CONVERT(NVARCHAR, GETDATE(), 107) Авг 23, 2019
110 SELECT CONVERT(NVARCHAR, GETDATE(), 110) 08-23-2019
111 SELECT CONVERT(NVARCHAR, GETDATE(), 111) 2019/08/23
112 SELECT CONVERT(NVARCHAR, GETDATE(), 112) 20190823
113 SELECT CONVERT(NVARCHAR, GETDATE(), 113) 23 авг 2019 13:39:17.090
120 SELECT CONVERT(NVARCHAR, GETDATE(), 120) 2019-08-23 13:39:17
121 SELECT CONVERT(NVARCHAR, GETDATE(), 121) 2019-08-23 13:39:17.090
126 SELECT CONVERT(NVARCHAR, GETDATE(), 126) 2019-08-23T13:39:17.090
127 SELECT CONVERT(NVARCHAR, GETDATE(), 127) 2019-08-23T13:39:17.090
130 SELECT CONVERT(NVARCHAR, GETDATE(), 130) 22 ذو الحجة 1440 1:39:17.090P
131 SELECT CONVERT(NVARCHAR, GETDATE(), 131) 22/12/1440 1:39:17.090PM

K. Результат применения приоритета типов данных при допустимых преобразованиях

В приведенном ниже примере определяется переменная типа VARCHAR, ей присваивается значение, а затем выбирается объединение переменной со строкой.

Значение 1 типа int было преобразовано в тип VARCHAR.

В этом примере показан похожий запрос с переменной типа int:

В этом случае инструкция SELECT выдает следующую ошибку:

Если предоставить строку, которую можно преобразовать, инструкция завершается успешно, как показано в следующем примере:

В этом случае строка ‘1’ может быть преобразована в целочисленное значение 1, поэтому инструкция SELECT возвращает значение 2. Если предоставленные типы данных являются целочисленными, оператор + становится математическим оператором сложения, а не объединения строк.

Примеры: Azure Synapse Analytics и Система платформы аналитики (PDW)

М. Использование функций CAST и CONVERT

Н. Использование функции CAST с арифметическими операторами

О. Использование функции CAST с предложением LIKE

П. Использование функций CAST и CONVERT с данными типа datetime

Источник

Читайте также:  Что такое комиссия пвк
Информ портал о технике и не только