Cast

Convert

Format

Parse

Str

Конспект Программиста-нефора

source

Большинство интерпретируемых языков не типизированы и автоматически конвертируют данные из одного формата в другой. Язык Transact-SQL привязан к типам, и вы должны явно преобразовывать форматы там, где это необходимо

Для преобразования данных используются команда (функция) CAST и CONVERT

CAST

В общем, виде CAST выглядит следующим образом:

CAST ( expression AS data_type )

Преобразование целочисленных типов к строковым:

SELECT cast(idPeoples as varchar(10)) + 
   cast(idPosition as varchar(10))
FROM tbPeoples

Неявное преобразование строки к целочисленному типу:

SELECT cast(idPeoples as varchar(10)) + idPosition
FROM tbPeoples

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


Прикол с типом char (забивает пробелами незаполненные символы)

SELECT CAST('Привет ' AS char(10)) + vcFamil
FROM tbPeoples

Результат: Привет mr.ИВАНОВ

CONVERT

Преобразование целочисленного типа в дробный (приближенный)

SELECT CONVERT(decimal(10,5), idPeoples)
FROM tbPeoples
Округление до целых
SELECT CONVERT(decimal(10,0), Цена)
FROM Товары

Преобразование дат

Преобразование строки к дате. 3 параметр - стиль

SELECT convert(datetime, '31.1.2005' ,103)

Таблица стилей

Сокращенный годПолный годФормат даты
-0 или 100Месяц дд гггг чч:ммAM (или PM)
1101мм/дд/гггг
2102гг.мм.дд
3103дд/мм/гггг
4104дд.мм.гггг
5105дд-мм-гггг
6106дд месяц гггг
7107месяц дд гггг
8108чч:мм:сс
10110мм-дд-гггг
11111гг/мм/дд
12112Ггммдд