Функції cast і convert (transact-sql)

Цільовий тип даних. До таких типів даних відносяться xml. bigint і sql_variant. Псевдоніми типів даних неприпустимі. Додаткові відомості про доступні типи даних див. Розділ Типи даних (Transact-SQL).

Визначене додатково ціле число, що позначає довжину цільового типу даних. Значення за замовчуванням дорівнює 30.

Целочисленное вираз, що визначає, як функція CONVERT перетворює параметр expression. Якщо стиль має значення NULL, повертається NULL. Діапазон визначається параметром data_type. Додаткові відомості див. У розділі «Примітки».

Повертає параметр expression. перетворений в тип data_type.

Стилі дати і часу

Якщо параметр expression належить до типу даних date або time, параметр style може мати одне із значень, наведених у таблиці. Інші значення обробляються як 0. SQL Server підтримує формат дати в арабському стилі, використовуючи кувейтський алгоритм.

1 Ці значення стилів повертають недетерміновані результати. Включають в себе всі стилі «рр» (без номера століття) і частина стилів «рррр» (з номером століття).

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

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

5 Хіджра - календарна система з декількома варіантами. У SQL Server використовується кувейтський алгоритм.

За замовчуванням SQL Server інтерпретує двозначні значення року з граничним значенням 2049. Тобто рік, позначений двома цифрами 49, інтерпретується як 2049, а рік, позначений двома цифрами 50, інтерпретується як 1950. Багато клієнтські програми, зокрема засновані на об'єктах OLE-автоматизації, використовують для цього значення 2030. У SQL Server є параметр конфігурації two digit year cutoff, змінює порогове значення року 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.

Наприклад, результатом наступного перетворення буде 10:

SELECT CAST (10.6496 AS int)

При перетворенні до типам даних, у яких дрібна частина коротше, ніж у вихідного типу, значення округляється. Наприклад, результатом наступного перетворення буде $ 10.3497:

SELECT CAST (10.3496847 AS money)

SQL Server повертає повідомлення про помилку при спробі перетворити нечислові дані типу char. nchar. varchar або nvarchar до типам int. float. numeric і decimal. SQL Server також повертає помилку, якщо до типам numeric і decimal перетворюється порожній рядок ( "").

Наступна таблиця містить стилі, для яких перетворення рядків у тип datetime недетерминировано.

Всі стилі менше 100 1

Нижче наводиться результуючий набір.

UnconvertedDateTime UsingCast UsingConvertTo_ISO8601

(1 row (s) affected)

Наступний приклад - часткова протилежність попередньому прикладу. Приклад відображає дату і час у вигляді символьних даних, використовує функцію CAST для зміни символьних даних в тип даних datetime. а потім використовує CONVERT для зміни символьних даних в тип даних datetime.

Нижче наводиться результуючий набір.

UnconvertedText UsingCast UsingConvertFrom_ISO8601

(1 row (s) affected)

З. Використання функції CONVERT з двійковими і символьними даними

У наступних прикладах показані результати перетворення двійкових і символьних даних з використанням різних стилів.